

Don’t Replace CoffeeScript with ES6 Transpilers - rtfeldman
http://noredinktech.tumblr.com/post/111583727108/dont-replace-coffeescript-with-es6-transpilers

======
timmfin
Despite being a huge CoffeeScript fan, having convinced our company to use it
for the past 3+ years, and personally using it for ~5 years
([https://github.com/jashkenas/coffeescript/issues/439](https://github.com/jashkenas/coffeescript/issues/439)),
this article is missing one point.

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...](https://github.com/michaelficarra/CoffeeScriptRedux/issues/336#issuecomment-70210965)
).

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.

------
javierbyte
Even if you use CoffeeScript, you will need to learn javascript, and for
everything that you write in CoffeeScript, you should know exactly how it will
look when is compiled.

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.

------
dustinhayes
I would argue babel is not a language, but a tool that compiles based on a
specification. By default it has no opinions on syntax or language features.
The best reason to abandon coffeescript for javascript (note I didn't say es6)
is because it's a better business decision. More developers know Javascript.
There is more faith in the future and advancement of javascript than there is
in coffeescript.

------
tlrobinson
I'm replacing CoffeeScript with ES6 because I think it's _a better language_.

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.

~~~
rtfeldman
And that's a perfectly sensible reason. :)

------
davidchase03
you lost me with coffeescript, bleh :(

