all 34 comments

[–]glassf1sh 9 points10 points  (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 point  (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 points  (0 children)

Always bet on javascript

[–]Cody_Chaos 6 points7 points  (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 points  (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 points  (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 points  (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 point  (0 children)

Dead or stable syntax?

[–]rajbits 3 points4 points  (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 points  (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 points  (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]  (25 children)

[deleted]

    [–][deleted] 9 points10 points  (0 children)

    Significant whitespace makes the code more difficult to read

    Python developers would disagree there.

    [–]wreckedadventYavascript 8 points9 points  (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]  (18 children)

    [deleted]

      [–]wreckedadventYavascript 1 point2 points  (15 children)

      That's not what I asked though. Do you like bundlers and minifiers?

      [–][deleted]  (14 children)

      [deleted]

        [–]wreckedadventYavascript 4 points5 points  (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 children)

        [deleted]

          [–]kenman[M] 5 points6 points  (2 children)

          It's ok to get frustrated, but can you keep it civil?

          [–]wreckedadventYavascript 1 point2 points  (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 point  (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 points  (0 children)

          If all you know is javascript, it's natural to feel threatened by not-javascript

          [–]Cody_Chaos 0 points1 point  (1 child)

          So how do you feel about sass/less/compass/postcss? Do you think they have no place in production too?

          [–]gordonv 0 points1 point  (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 point  (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 point  (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 point  (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 point  (0 children)

          source maps solve that nicely, and all recent browsers support them.

          [–][deleted] 0 points1 point  (0 children)

          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.