News for hackers. Stuff that matters.
Re:Writing Eloquent JavaScript Without CoffeeScript by MatthewPhillips on Friday December 09, 2011 @02:31PM (#3335191)
Not really. It's not usually mentioned but CoffeeScript loses a lot of its supposed elegance when you try to do things like chaining. Especially chaining a function that takes a function as an argument. To achieve better looking chaining you'll talk yourself into not using anonymous functions. tldr: whitespace significant languages do not do chaining very elegantly.

Other than that CoffeeScript is pretty cool.

Re:Writing Eloquent JavaScript Without CoffeeScript by jashkenas on Friday December 09, 2011 @02:45PM (#3335257)
... not so much. A big part of the point of having a minimal function literal, `->` instead of `function(){}`, is that using anonymous functions is a bit more pleasant in any context -- including chaining.

    list.map((num) ->
      num * 2
    ).map((doubled) ->
      doubled + 5
    )
... instead of:

    list.map(function(num) {
      return num * 2;
    }).map(function(doubled) {
      return doubled + 5;
    });
It's not a huge difference. But, by the same token, it's certainly not a reason to avoid the use of anonymous functions.
Re:Writing Eloquent JavaScript Without CoffeeScript by MatthewPhillips on Friday December 09, 2011 @03:44PM (#3335527)
CoffeeScript is always going to be less verbose than JavaScript, but in the context of a full code file having some functions with parentheses and some without isn't a pleasant consistent experience in my book.

Another thing CoffeeScript handles unelegantly is two anonymous functions (very common when a function needs an onsuccess and an onerror):

  api.get(
    ->
      # Success here.
    ->
      # Failure here.
  )
The benefit of curlies is you get a consistent experience and don't have to go to Stackoverflow to find out when you need commas or parentheses and when you don't.