Emscripten is the ‘original’ tool for compiling to WebAssembly. It is built on the LLVM compiler toolchain, with its own Fastcomp backend that generates asm.js, and produced many of the early game-engine demos. While Emscripten certainly paved the way for WebAssembly, one of the common complaints has been the size of the code it generates. Thankfully that has changed, this post describes how a simple ‘add’ example has slimmed down from 10,837 to 42 bytes!
As a result of the fallout from Spectre / Meltdown browser vendors very quickly pulled a few browser features, SharedArrayBuffer for example. One unintended consequence of this was that WebAssembly stopped working for iOS devices. Apple are very much aware of this issue, and we have heard news that it has been fixed, however, it is still broken in the latest release.
The number of meetup and conference talks on WebAssembly is starting to increase as news of this technology spreads. This is a particularly good introduction.
And Finally …
What will WebAssembly be used for now, and in the future? I asked that very question on Twitter and received many great responses.