I learnt a while back to use coffeescript and indeed enjoyed most of the features it had to offer, but now that you can get most of CS' features without having to compile your code, is it still worth it at all?
It depends. Since the author said the mission is completed and CoffeeScript will no longer adding new features, it has. However, if there are still people working on new features of it, I would definitely prefer CoffeeScript. Because ES6 ES7 are adding too many things into JavaScript it's like crazy. I'm writing in ClojureScript these weeks by the way.
The main problem with CoffeeScript is it is not 'just JavaScript' as they claim. In fact, it is very different visually, adding to cognitive load when switching between languages.
It had very positive influence over the JavaScript ecosystem, but now that the language is more modern and in continuous development, the is no need for it.
I would agree that it has largely lost its value proposition, unless you just hate JS syntax. I know that for me spending countless hours on js2coffee just to compile back to JS felt like a waste of time.
I'm afraid this is just a part of sharing the specs put forward by a wider community - there are going to be some bits here and there we don't individually like. I wouldn't put much stock into an increasingly irrelevant compiling language because of a couple of characters you don't like though. :) Embrace the new and I promise you'll get used to it. Who knows, maybe brackets will become optional in the future??
Lorefnon
Open Web Enthusiast
Yes. But it is not just because of the arrival of ES6.
The problem with coffeescript is that it has languished behind modern features intentionally and deliberately. Features like async/await were implemented long ago by community contributors but never made it to the core. Babel on the other hand has been aggressively and proactively facilitating features that are even remotely likely to make its way into the future versions of javascript.
On top of that it also has intentionally avoided features that would allow other developers to extend the language - eg. Hygenic Macros. In contrast the babel ecosystem is strongly oriented around feature focussed plugins that application developers can pick and choose.
It would seem that coffeescript took the motto of it is "just javascript" way too seriously focussing on the lowest common denominator while the javascript language itself has been moving forward at an unprecedented rate - along with the js community.
This comment on coffeescript's issue tracker summarizes the current state of things very well:
So yes most of the community momentum has indeed been diverted away from coffeescript.
People who want just a better version of javascript are well served by babel which facilitates the upcoming features of javascript and linters like eslint which help to circumvent the quirks of the language.
People who really like a language which is extensible down to core - have found their niche in lisp implementations like clojurescript . After all nothing beats lisp when it comes to extensibility.
People who find type safety important are excited about typescript and flow. And of course, for those who need a much more sophisticated type system and are willing to embrace the learning curve associated with them have scala, haskell and ocaml implementations that target javascript.
Last but not the least the ruby community where coffeescript has been enjoyed the most popularity has come up with a great solution - Opal which is a performant ruby implementation that compiles to readable javascript and offers easy interoperability with javascript libraries.
So I do not think I will be getting rid of my build tools any time soon - but atleast for me features like async/await and static type analysis are much more compelling reasons to use a transpiler than a prettier indented syntax.