JavaScript is Not Web Assembly
I usually try not to weigh in on these debates -- I imagine <a href="https://groups.google.com/forum/#!topic/nodejs/a7yVzBw1sJk" rel="nofollow">https://groups.google.com/forum/#!topic/nodejs/a7yVzBw1sJk</a> is what triggered this post. But...<p>Mr. Schlueter is right on -- C++ is a much more accurate comparison, and especially so because it was originally implemented as a cross-compiler into C source code (circa 1983-1990).<p>That said, saying that the desire to compile into JavaScript is (to paraphrase the post) pathological language-wank craziness, is a bit extreme.<p>I'd like to think that the reason why CoffeeScript has caught on like wildfire, when there are so many other AltJS languages out there (<a href="https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS" rel="nofollow">https://github.com/jashkenas/coffee-script/wiki/List-of-lang...</a>) is that we're trying to take the deeply pragmatic approach.<p>Mr. Schlueter writes "you don’t compile it to target a given platform," as if this would be an advantage or a justification for existing ... when it's really quite the opposite. JavaScript is plagued with libraries that will only ever run on certain platforms because they opt-in to platform specific features. I can't use your simple pluralization library to turn "bit" into "bits", because it was only written to run on Node.js, and is riddled with `forEach` and `require`, or because it was only written for the browser, and hides data in the DOM.<p>CoffeeScript tries very hard to compile into efficient, lowest-common-denominator JavaScript (read avoid Internet Explorer bugs) because that's how your library can be used widely across devices and runtimes, while being reasonably future proof.<p>I don't know when "order of magnitude difference" became a synonym for "worthwhile difference", but ... how much easier does a program have to be to read and write before it becomes a worthwhile choice to make the change? 2x? 1.3x?<p>In any case, CoffeeScript is a little thought experiment -- not a corporate project, or a Dart-like browser takeover. If it suits your fancy, use it, and if it itches you the wrong way, by all means leave it out.