Using CoffeeScript for GNOME development

In Suski's blog I saw a question on whether developing GNOME apps would be possible in CoffeeScript. The answer is yes. I wrote a quick example back in Desktop Summit:

# GObject Introspection APIs are available from imports.gi.Modulename
Gtk = imports.gi.Gtk

# For GNOME 3.2+ this should be Gtk.init null, 0
Gtk.init 0, null

win = new Gtk.Window
type: Gtk.WindowType.TOPLEVEL
win.set_border_width 10
win.connect "destroy", (widget) ->
Gtk.main_quit()

button = new Gtk.Button
label: "Hello, world"
button.connect "clicked", ->
button.set_label "Bar"
win.add button

button.show()
win.show()

Gtk.main()

Gjs doesn't run CoffeeScript directly, so you need to convert this before running:

$ coffee -c window.coffee 
$ gjs window.js

You should see something similar to:

gjs-coffee-example.png