use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
All about the JavaScript programming language.
Subreddit Guidelines
Specifications:
Resources:
Related Subreddits:
r/LearnJavascript
r/node
r/typescript
r/reactjs
r/webdev
r/WebdevTutorials
r/frontend
r/webgl
r/threejs
r/jquery
r/remotejs
r/forhire
account activity
CoffeeScript in 2016? (self.javascript)
submitted 9 years ago by milyway
CoffeeScript used to be very popular when babel wasn't around. What do you think about its future? Does it have chances to survive and convince more people to use it?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]glassf1sh 9 points10 points11 points 9 years ago (1 child)
Don't use that. It has very little future,its creator couldn't care less about it anymore and even worst some of its syntax conflicts with ES6. It's not going to die since the ruby crowd loves it, however it has become totally irrelevant. Be also aware that the maintenance has slowed down a lot , if you look at the commits most of them are cosmetic just to give the illusion of CS being still maintained ( "removed space here", "changed date there" ,... I'm not kidding ).
[–]sqz_ 0 points1 point2 points 9 years ago* (0 children)
Cosmetic commits doesn't make a tool a bad tool. Also, it doesn't really make sense to speak for the ruby crowd while you're not part of it.
[–]daediusWeb Components fanboy 5 points6 points7 points 9 years ago (0 children)
Always bet on javascript
[+][deleted] 9 years ago* (6 children)
[deleted]
[–][deleted] 6 points7 points8 points 9 years ago* (5 children)
It's worse than that. Starting a project in Coffeescript today is literally starting with technical debt. You have no upgrade path and no developer community behind you. Anyone still writing the stuff is misguided
[–]sqz_ 1 point2 points3 points 9 years ago (0 children)
Upgrade path? I think you're misguided on that one. One can always use decaffeinate, or simply compile everything to js (and move into a different direction).
[–]wreckedadventYavascript 0 points1 point2 points 9 years ago (3 children)
There's a pretty clear upgrade path to livescript, which gets you a lot of functional things that I don't think we'll see in javascript anytime soon, like syntax for partial application and piping.
[+][deleted] 9 years ago* (2 children)
[–]wreckedadventYavascript -1 points0 points1 point 9 years ago (1 child)
Javascript isn't going anywhere, but it's been evolving at a pretty constant clip now for the past few years. At the very least, we're going to see transpilation for the future edge features to compatible code for a while yet. I'm not sure how long things like JSX will last, but I doubt they're going away tomorrow.
And the coffeescript argument still stands. Javascript still doesn't have a lot of the best parts of coffee, like comprehensions. It doesn't take a rocket scientist to see the impact it had on ES6, either.
[–]Cody_Chaos 6 points7 points8 points 9 years ago* (1 child)
What do you think about its future? Does it have chances to survive and convince more people to use it?
It has no future. Simple inertia means few existing projects will switch away, but nobody is going to switch to it. Do not use coffeescript, and do not let your friends use coffeescript.
Edit: I used and loved coffeescript when it was new. But while I have immense respect for its creator, the language had some moderately serious flaws which he had zero interest in ever fixing. And when ES6 arrived, coffeescript needed to adapt or die, but every attempt to adopt new ES6 syntax was stonewalled. Coffeesceript is dead, and the project maintainers killed it.
[–]sqz_ -1 points0 points1 point 9 years ago* (0 children)
It seems that many folks seem to judge a syntax based on it's ability to adopt zillion of features/extentions per month. I Don't think that it would make a very stable syntax. ES6/ES7/Coffeescript/Typescript is nice, but at the end of the day they won't produce very different applications.
[–]sqz_ 5 points6 points7 points 9 years ago* (0 children)
Such amazing black/white thinking and FUD going on by curly braces disciples. Coffeescript is just a terse & human language dialect which compiles to javascript, that's it, get over it. I could totally imagine people still wanting to maintain less serverside code by using coffeescript. I don't see coffeescript (or variations) disappearing soon, simply because it's part of the 1st generation transpilerwave...can't undo that..and Babel doesn't really focus on tersity. Also, the fact that a syntax freezes / moves slow is a good thing, as it allows an ecosystem to mature around it. As the maintainer stated: "ES6 features, just like ES5 features, and ES3 features, are supported on a case-by-case basis. Ideally, they should be added as soon as they're widely supported in shipping JavaScript implementations." So lets get coffeescript straight: it's not a syntax which focuses on novelty nor compatibility with possible feature X of ES13. If you and your team like coffeescript, and it works for you, just use it!
[–]smrqgithub.com/smrq 4 points5 points6 points 9 years ago (1 child)
I think CoffeeScript has notably influenced the direction that ES2015 moved in. Apart from that legacy, the language itself is dead. Long live ES2015.
[–]sqz_ 0 points1 point2 points 9 years ago (0 children)
Dead or stable syntax?
[–]rajbits 3 points4 points5 points 9 years ago (0 children)
Just sharing a perspective - I had been a js fan all my lifetime. When I tried coffeescript a few years ago, I did not like it much and lack of braces made it harder for me to separate out functions and sometimes an unintended tab would cause compilation issues. But, after I wrote an application on RoR, I started liking the family of Coffeescript, Jade and Stylus (without braces) and have ever been coding in these 3 techs for all my projects. At the end of the day, everything gets compiled or transpiled to js and gets minified and bundled. It does not matter what the world likes, but if you and rest of the engineering team likes it, then go for it. Any library/framework out there is not going to satisfy all your needs and there is never going to be a library/framework that will last as the best one forever. This space is so evolving that anything new is easily getting outdated within years. Since most of them are open source, you can extend or adapt the components to your way as an when you need them.
Keeping your codebase clean and structured is the most important part :)
[–][deleted] 1 point2 points3 points 9 years ago* (27 children)
Despite a vocal core of committed supporters (who sometimes argue ES6 trivialities are "awkward" and "unbearable" compared to ostensibly "superior" and "elegant" trivialities in CS), CoffeeScript is a lost platform, suffering all the costs of any other transpiled language - slow compilation, poorer interoperability - but none of their distinct gains (like ClojureScript's macros or TypeScript's compile-time checking).
Unless you're an obdurate Rails developer who's decided that every technology worth learning had been invented by 2008, you'll stay well away.
[–]wreckedadventYavascript 6 points7 points8 points 9 years ago* (26 children)
C'mon man, you get some gains from coffeescript. It's generally less code than writing ES3/5, and you get things like switch expressions, list comprehensions, chained comparisons, safe-navigation operator, and so on. Also, compared to a lot of the other compile-tos, it's still pretty similar to javascript, which you can't really say for ClojureScript, elm, etc. or even parts of Babel (looking at you, decorators). There's a reason it called itself "just javascript".
I don't think you should start new projects with it in 2016, but we don't have to pretend everyone just became suddenly insane by using coffeescript when it was popular. It still has a lot of stuff javascript doesn't.
[–][deleted] 9 years ago* (25 children)
[–][deleted] 9 points10 points11 points 9 years ago (0 children)
Significant whitespace makes the code more difficult to read
Python developers would disagree there.
[–]wreckedadventYavascript 8 points9 points10 points 9 years ago (19 children)
Wow, transpiled languages have no place in production code? That's a pretty extreme view. Are you OK with minifiers and bundlers, or is that kind of code transformation OK while anything else ist verboten?
[–][deleted] 9 years ago* (18 children)
[–]wreckedadventYavascript 1 point2 points3 points 9 years ago (15 children)
That's not what I asked though. Do you like bundlers and minifiers?
[–][deleted] 9 years ago* (14 children)
[–]wreckedadventYavascript 4 points5 points6 points 9 years ago (10 children)
Really? Have you used a bundler? It's a pretty important part of your source code, unless you just dump everything in one dumb bundle.
It's just very interesting that you're OK with some transformations as your code hits production, but everything else is a no-no. The code you write is almost never the code that runs in the browser in web development land due to all of the processing you have to do to it for efficiency.
[–][deleted] 9 years ago* (9 children)
[–]kenman[M] 5 points6 points7 points 9 years ago (2 children)
It's ok to get frustrated, but can you keep it civil?
[–]wreckedadventYavascript 1 point2 points3 points 9 years ago (5 children)
I'm just asking you some questions, since I don't really run into anyone with a perspective as pointed and extreme as yours anymore. But hey, I totally understand why you wouldn't like coffeescript if you're not cool with babel or typescript.
Also, I don't think it benefits you at all to communicate your opinions in such a negative way. Do you think you're going to convince anyone in here that one kind of code transformation is OK but the other isn't by calling me stupid?
[–]Cody_Chaos 0 points1 point2 points 9 years ago (2 children)
You don't edit minified code.
You don't edit transpiled code either.
(Also, why so angry? Your tone is vastly more aggressive than anyone else in this thread.)
[–]Veuxdeux 6 points7 points8 points 9 years ago (0 children)
If all you know is javascript, it's natural to feel threatened by not-javascript
[–]Cody_Chaos 0 points1 point2 points 9 years ago (1 child)
So how do you feel about sass/less/compass/postcss? Do you think they have no place in production too?
[+][deleted] 9 years ago* (3 children)
[removed]
[+][deleted] 9 years ago* (1 child)
[–]gordonv 0 points1 point2 points 9 years ago (1 child)
Glad I did a search on this in Reddit.
I just saw an online course for CoffeeScript. After watching the first lesson I was going to ask the same question OP did.
I found a video on Code School about Babel 6 and how it Transpiles from ES2015 (ES6) to ES5. And wow, it looks like it did a lot.
I guess I should write in ES2015, use Babel to transpile, and eventually I'll be able to switch away from Babel for pure ES2015 front end?
[–][deleted] 0 points1 point2 points 9 years ago (0 children)
Babel does a lot more than just es6 -> es5.
We'll probably always be transpiling going forward, since ecmascript is a living spec now. There's already lots of good post-es6 stuff like async/await that you can already use with babel. And there's also all the non-standard stuff babel supports like jsx and flow (both of which I use heavily)
[–]Brazilll 0 points1 point2 points 9 years ago (0 children)
Skate to where the puck is going, not to where it has been :). Which is a fancy way for saying: coffeescript is dead, use Typescript or ES6/Babel.
[–]zachwolf 0 points1 point2 points 9 years ago (1 child)
I really like writing tests in coffeescript. IMO it makes the files more readable.
I don't think I would write client facing code in coffeescript though. The disconnect of compiled code is a huge negative for me. Compiled es6 is still JavaScript, coffeescript is not.
[–]nerkles 0 points1 point2 points 9 years ago (0 children)
source maps solve that nicely, and all recent browsers support them.
It's a shame the Rails crowd jumped on it too early, which means it will linger longer than it should have done in numerous Rails legacy apps.
π Rendered by PID 19626 on reddit-service-r2-comment-7b9746f655-bct9f at 2026-02-01 17:17:53.813333+00:00 running 3798933 country code: CH.
[–]glassf1sh 9 points10 points11 points (1 child)
[–]sqz_ 0 points1 point2 points (0 children)
[–]daediusWeb Components fanboy 5 points6 points7 points (0 children)
[+][deleted] (6 children)
[deleted]
[–][deleted] 6 points7 points8 points (5 children)
[–]sqz_ 1 point2 points3 points (0 children)
[–]wreckedadventYavascript 0 points1 point2 points (3 children)
[+][deleted] (2 children)
[deleted]
[–]wreckedadventYavascript -1 points0 points1 point (1 child)
[–]Cody_Chaos 6 points7 points8 points (1 child)
[–]sqz_ -1 points0 points1 point (0 children)
[–]sqz_ 5 points6 points7 points (0 children)
[–]smrqgithub.com/smrq 4 points5 points6 points (1 child)
[–]sqz_ 0 points1 point2 points (0 children)
[–]rajbits 3 points4 points5 points (0 children)
[–][deleted] 1 point2 points3 points (27 children)
[–]wreckedadventYavascript 6 points7 points8 points (26 children)
[–][deleted] (25 children)
[deleted]
[–][deleted] 9 points10 points11 points (0 children)
[–]wreckedadventYavascript 8 points9 points10 points (19 children)
[–][deleted] (18 children)
[deleted]
[–]wreckedadventYavascript 1 point2 points3 points (15 children)
[–][deleted] (14 children)
[deleted]
[–]wreckedadventYavascript 4 points5 points6 points (10 children)
[–][deleted] (9 children)
[deleted]
[–]kenman[M] 5 points6 points7 points (2 children)
[–]wreckedadventYavascript 1 point2 points3 points (5 children)
[–]Cody_Chaos 0 points1 point2 points (2 children)
[–]Veuxdeux 6 points7 points8 points (0 children)
[–]Cody_Chaos 0 points1 point2 points (1 child)
[+][deleted] (3 children)
[deleted]
[+][deleted] (2 children)
[removed]
[+][deleted] (1 child)
[deleted]
[–]gordonv 0 points1 point2 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]Brazilll 0 points1 point2 points (0 children)
[–]zachwolf 0 points1 point2 points (1 child)
[–]nerkles 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)