coffeescript fell out of use because ES6 brought like 90% of the benefits of cofeescript and added a few more things. One of the few things that coffeescript still had going for it was the different syntax that a lot of people like (identation-based blocks, no curly braces, etc)<p>As always pragmatism won and ES6 thrived, but Coffeescript still had a few things that ES6 didn't have. My favourite feature is "everything is an expression" so you can do something like this:<p>eldest = if 24 > 21 then "Liz" else "Ike"<p>see:
<a href="http://coffeescript.org/#expressions" rel="nofollow">http://coffeescript.org/#expressions</a><p>this comes from Lisp and makes a lot of things easier. Obviously this was not implemented in ES6 because it would break compatibility and there is also some problems with implicit returns that made the feature a bit weird<p>I wonder if a syntax like this for JS would work:<p>const eldest = if (24>41) { escape "Liz" } else { escape "Ike" }<p>with "escape" working like a mix of "break" and "return". But even then this is likely to cause incompatibilities