I love CoffeeScript. But then, I am well-versed in JavaScript. People who don't understand scope, lambdas, prototypes, etc. should stick to JavaScript, as CoffeeScript obscures some of that. You really should understand what's going on behind the scenes.<p>Which makes it all the stranger that experienced JavaScript developers seem to avoid it, while less experienced ones embrace it.<p>My main gripe with CoffeeScript (there are a couple, but here's one) is code organization/readability when a method takes multiple functions as arguments.<p><pre><code> foo ->
bar()
baz()
quux()
, (error) ->
throw error if error
</code></pre>
That does look a bit odd, and you run into these a lot when you're using caolan/async. You can avoid this by avoiding anonymous methods, but with so many callbacks in Node.js that is probably less readable.