4 Unify the Client With WebAssembly
JavaScript traditionally enjoys a strange popularity in the browser, with apologies:
A programmer can have any language they want in the browser, so long as it is JavaScript. — (Not) Henry Ford
It seems very natural to us now, but think about how odd of an occurrence it is that programmers have used one language to target such a wide variety of users and applications. JavaScript certainly has many of its own benefits and drawbacks. Strangely enough, a meta-flaw of JavaScript, namely that one 'must' use it for web development may be the biggest of all.
This constraint wasn’t lost on the development community. A notable early project is Google Web Toolkit (GWT). The core of this toolkit is a compiler from Java to JavaScript. This lets a developer reuse their experience, nifty tooling, and debugging options, to JavaScript. Java’s not everyone’s cup of $COMPETING_HOT_BEVERAGE, but nobody would doubt that one can build large applications in it.
In the decade that followed we saw immense growth in the number of languages that can compile to JavaScript. The author of CoffeeScript, Jeremy Ashkenas, maintains a large list of languages that, like CoffeeScript itself, compile to JavaScript: github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS