4 ms·
I think CS is too similar to JS in it's current an upcoming versions to stay relevant in the future. After Harmony the few differences between JS and CS will be
by klibertp 13y ago
I think CS is too similar to JS in it's current an upcoming versions to stay relevant in the future. After Harmony the few differences between JS and CS will be trivially fixable by a few macros like Sweet.js.
Personally I moved to LiveScript as it gives me much more syntactic support for functional semantics, without requiring runtime support like ClojureScript (although I'm looking into ClojureScript as well, just not using it in production). But I'm in a privileged position because I could make that choice myself; I think not many people could do this. And they don't, which means if they switched to CS they're effectively stuck with it for some time.
Which, yes, makes CoffeeScript rather mainstream language :)
- MildlySerious 13y agoThe point of CoffeeScript is not to be "different" from JS, it's supposed to be easier than JS. It moves the language out of your way, that is all.
- klibertp 13y agoAgreed, but where do "different" begin and where it's still "just JavaScript"? Almost all patterns supported by LiveScript syntax are already present in JS and CS as a libraries. For example the cascade syntax in LS is almost the same as what raganwald's KaTy.js provides semantically. Similarly, function composition is supported by more than one library (Underscore.js has "compose", for example) and currying is also easily implemented in both JS and CS (see raganwald's writings, for example http://raganwald.com/2013/03/07/currying-and-partial-application.html http://raganwald.com/2013/03/07/currying-and-partial-applica...), so once again the only thing LiveScript provides is a bit of syntactic sugar. Is it really that different from Coffee or JS? In my opinion LiveScript is as similar to JS as Coffee is, just where CS adds syntactic support for more imperatively and OOP oriented constructs LS focuses on functional and declarative ones. Which are all expressible in JS. Actually "different" would be ClojureScript, Amber or Objective-J. Or any number of compile-X-to-js projects.