Re:Farewell CoffeeScript
by emergentcypher on Thursday October 02, 2014 @07:32AM
(#8400283)
I really don't understand how coffeescript is cleaner or easier to understand. To me the syntax is much more confusing and ambiguous and takes more time to understand where things go... or just to hunt down the little comma responsible for delineating two arguments. When the code you're looking at is large and complex it's even worse. And just because we don't like typing "var" or using curly braces? That is seriously what we're calling bloat?
I was originally very intrigued by it, and used it heavily in one of my projects, but after working with it for a year I went back to JS for the next project. I still want something better than JS but coffeescript definitely isn't the answer.
Because at the end of the day, each browser has its own set of JavaScript bugs. Now you spend time debugging your code and the code generated by the tool.
If I already need to be a JavaScript expert to make my code run properly across all target browsers, I don't see a value adding another layer to debug.
I'm interested to know what value TS/CS devs get from their code translating to "legible" JS?
I used TypeScript for a project earlier this year. As a C++/C# expert and a JavaScript noob, I found the clarity, the readability of my code to be far superior with TypeScript, well worth the extra tooling.
Then I found that after working that way for a number of months I no longer needed it. I picked up enough JavaScript along the way that I could I drop the training wheels and I am not looking back.
The author makes some odd assumptions about CoffeeScript's intentions, ie language reduction and protecting against "evil code". All of this ignores the real main benefit, which is cleaner syntax, which means less finger typing and easier comprehension of a large and complex code base.
There was a time when JavaScript was the only real choice for browser-based web development. There were compilation tools like GWT, but they were heavyweight and generated the JavaScript equivalent of binary, completely detached from the source code. Now that the JavaScript++ languages are here (CoffeeScript, TypeScript) and well-supported in the browser thanks to source maps, I find it hard to imagine why people continue using raw JavaScript with all the bloated keywords, curly braces, etc (apart from legacy code bases). Usually it's because they haven't used anything else, and are content to focus on the negative of Coffee etc and stick to what they already know.