Thoughts on CoffeeScript after ECMAScript 6

by
, posted

Note: this post is now out of date.

Back in 2012, I wrote “I love CoffeeScript”, a short post about how I thought that CoffeeScript was a better language than JavaScript. I hadn’t changed my opinion much since then; I still thought it was a great language and far more pleasant than writing JavaScript.

Then I decided to give ECMAScript 6 a try (using 6to5), and it changed the game. ES6 isn’t released yet, but it’s already really nice to use.

It takes so many of the pain points out of JavaScript, fixing weird variable scoping, adding simpler anonymous functions with the => syntax, implementing classes, adding const…while I don’t think the next version of JavaScript will be the perfect language, I feel that ES6 modernizes the language.

ES6 obsoleted CoffeeScript for me in many ways. It took most of CoffeeScript’s features like classes, array comprehensions, and default parameters. ES6 also has a bunch of new features that will make for even better JavaScript. If I can use a language with all of the same features and much more, why not upgrade?

CoffeeScript still has a nicer syntax. The JavaScript semicolons flame wars will rage on, but we’ll always have ugly semicolons in JavaScript. We’ll still have lots of lines ending in });. But I’m willing to bite that bullet for the betterness of ES6.

So many of the new features seem to draw inspiration from CoffeeScript. I doubt we’d have the pleasantries of ES6 without CoffeeScript. So while I may be slowly weaning myself off of CoffeeScript, I’ll still be living with its features in ES6.