WebAssembly Troubles Parts 1 - 4

TROUBLES.MD

Every language, every framework, every library has its flaws, and by pointing them out and discussing them we learn a lot. This is an excellent four part critique of WebAssembly, looking at the language design and pinpointing issues that make it hard to create optimized compilers that target this language. The first article looks at the stack-machine nature of the language and highlights that function locals actually ‘break’ this design.

Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code

ARIXIV.ORG

We all know that WebAssembly is built for performance, but just how fast is it? You can find a number of articles on the web that provide measurements based on ‘microbenchmarks’, testing the performance of very small functions, but these are quite misleading. Also, there is often a focus on WebAssembly vs. JavaScript. This detailed scientific paper takes a very thorough look at the performance of WebAssembly compared to native, giving some interesting results and insights.

Bytecoder - compile Java Bytecode to JavaScript and WebAssembly

GITHUB.COM

Java doesn’t have terribly good support for WebAssembly yet, so it’s good to see some more people trying to bridge the gap. This project uses an LLVM-style pipeline, with an intermediate representation that is passed to various back-end targets. It also has some impressive demos, if you like shiny things!

TinyGo - a Go compiler for small places

TINYGO.ORG

TinyGo is a compiler that is designed for targeting microcontrollers and WebAssembly.

And Finally …

Mozilla are advertising a WebAssembly position, for someone to help take WebAssembly beyond the web!