- readability: so nice to get rid of semicolons and curly braces, loops are amazingly transparents
- allows a real "class"-based work. It's perfect if you work with Backbone, for instance. Might be less true with Angular and such
- defines some meaningful shortcuts, to create functions or closures for example. Next version of EcmaScript learned about it and will feature the "arrow" notation for functions
- it pairs perfectly with CSS preprocessors, but mainly SASS: focus on the content, less on the appearance
- you need to perfectly know how JavaScript works. The CoffeeScript output is really nice, but writing it can lead to unexpected side-effects (forgot double arrow instead of single arrow), real prototype inheritance, difference between class properties, instance properties, scopes
- you might want to focus on bad ways to improve performance. For instance, CS knows that defined functions inside loops are bad, so it will generate a function outside the loop and call it inside. If lat