I prefer coffee-script. It also works in the browser.
Last expression in a function is returned. This includes assignment statements which are in fact expressions.
foo = () ->
a = bar()
z = () ->
if a
b = fu()
else
b = kar()
Here, foo returns the function z, and z returns either fu() or kar() while assigning the value to bOne could argue this is just syntax but I think this way beyond the kind of thing that comes to mind when somebody thinks of "syntactic sugar".
foo = ->
a = bar()
z = ->
if a
b = fu()
else
b = kar()Apart from pleasant syntax, coffeescript also improves upon semantics where it can - this binding, lexical scoping etc etc. People are willing to adopt Coffeescript because it compiles to javascript, it has improved semantics and clean & mostly familiar syntax.
To sum it up, the inertia is small when moving from JS to cofffeescript. That doesn't look like the case with funode.