

Ask HN: Does the use of CoffeeScript improve your productivity? - mk4p

Thinking of starting to use CoffeeScript, but this decision will affect 3 developers. Anybody have opinions on this?
======
TrevorBurnham
I'm biased, insofar as I'm the author of the CoffeeScript book published by
PragProg (<http://pragprog.com/titles/tbcoffee/coffeescript>), but I'd say
"yes, with slight reservations."

If your team consists of three John Resig-like JS ninjas, then the benefits of
using CoffeeScript may be slight, or even cancelled out entirely by the extra
step of compilation or the concern that future versions of CoffeeScript may
break your code. But if your JS skills are beginner-to-intermediate, then I'm
quite confident that you'll be more productive after a week or two of using
CoffeeScript. That's based on my own experience, and the experience of many
developers I've talked to.

CoffeeScript is an improvement in a lot of ways, and makes some of the most
common JS mistakes (polluting the global scope by omitting `var`, relying on
`==` to coerce types) impossible, while making many (`this` not being what you
want it to be) easier to fix. Brendan Eich, the creator of JavaScript, is on
record as being a fan.

It's not a magic bullet, and there are certainly tradeoffs, but all in all,
I'm of the opinion that CoffeeScript is what most devs should be using. And
the benefits are especially pronounced in a team setting, where having
shorter, more readable, more modularized code makes communication much, much
easier. In pg's words: "Succinctness is power."

(By the way, I've also waxed about this subject at the Programmers Stack
Exchange: See [http://programmers.stackexchange.com/questions/72569/what-
ar...](http://programmers.stackexchange.com/questions/72569/what-are-the-pros-
and-cons-of-coffeescript/) and
[http://programmers.stackexchange.com/questions/72699/should-...](http://programmers.stackexchange.com/questions/72699/should-
i-invest-time-learning-coffeescript.))

------
Tycho
I'm hardly an expert but it was greatly beneficial to me. Got the complexity
under control, started working much faster, and being able to understand stuff
better when i revisited it. It's also just generally more pleasurable to use,
with the high-level loops and other control aspects. Makes your code much
prettier. And this, I might add, with a far from optimal development setup -
can't get Node to run on my comp, so I'm just pasting code in and out of the
'try coffeescript' widget on github.

------
heydenberk
Yes, _undoubtedly_. It has a learning curve like any programming language, but
even for existing intermediate JavaScript users, the learning curve for
CoffeeScript is shallower than the learning curve for expert, best-practices-
driven JavaScript development.

------
rawsyntax
IMO it improves developer happiness... whether that improves productivity
dunno. For me, I doubt it would, I am using the very good js2-mode for emacs,
which is able to issue warnings and error messages as I type, checking my
javascript syntax as I go.

------
VMG
I recently did some medium-scale work with it and was generally satisfied. The
gotchas I encountered were mainly javascripts fault.

------
dreamdu5t
Short answer: No.

It depends on the complexity of the project, and whether or not you are
counting the time to learn CoffeeScript.

If it's a small project, you won't notice a lot of difference. But, if you
know CoffeeScript and use it on larger projects you'll notice it's easier to
not repeat yourself, and you can get things done a lot quicker.

I think that in large projects with lots of styles and code to manage, tools
like SASS can really improve maintability and extensibility. The speed for
which you can make improvements in the future is greatly increased.

Personally, I think SASS + Compass is a more robust solution than
CoffeeScript.

------
endian
Hell yes!

