Don’t Replace CoffeeScript with ES6 Transpilers
noredinktech.tumblr.com
noredinktech.tumblr.com
Community.
Yes, there will be a CoffeeScript community that lingers on, but as things are looking now it won't be near as vibrant as it once was. Not only are there (seemingly) less people using CoffeeScript, but major related projects—such as CoffeeScriptRedux—are closing up shop (see this comment: https://github.com/michaelficarra/CoffeeScriptRedux/issues/3... ).
On the other hand, ES6 (and transpilers like Babel and Tracuer) are very popular right now. Some of that is hype & fad, but a lot of it is legitimate. In particular, I think that changes like the new module syntax are going to dramatically change Javascript development (even if we all transpile, speaking a unified module language is a huge improvement).
So, while I think it is totally reasonable to continue using CoffeeScript (and part of me really wants to!), it is hard to ignore/shun the community and momentum being ES6. For a while I was optimistically thinking that someone would eventually release CoffeeScript 2 (or even better, CoffeeScript6) that intentionally broke backwards compatibility to merge with ES6 semantics (classes, modules, etc). But now I'm thinking that is less and less likely (IMHO, CoffeeScriptRedux seemed like the best chance for that to happen).
I don't know if I'm ready to completely give up hope yet, but I think the article misses the point, community—and the (potential?) lack thereof—is one of, if not the most important thing to consider regarding your choice of language.
So, if you learn CoffeeScript, you must also learn Babel, because it is ES6. If you write CoffeeScript, only people that use CoffeeScript will be able to read your code fluently.
If you learn Babel instead, people will organically learn ES6 overtime, and your code will become understandable to all javascript community.
CoffeeScript is beautiful, and was a nice stopgap, but there are some surprising syntax edge cases. There are also a lot of people who don't know or refuse to learn/use CoffeeScript for whatever reason. ES6 is the way forward for those people.
Also, ES6 generators + promises + Bluebird's "coroutine" function is an awesome way to avoid callback hell. It's similar to ES7 (and C#) async/await, but works everywhere (via Babel) today. IcedCoffeeScript and streamline.js are kind of similar but don't use promises.
EDIT: I see CoffeeScript actually supports ES6 generators now.