This week Mozilla announced a significant round of lay-offs (their second in 2020), which has left 25% of their staff looking for new jobs. I’m going to steer clear of the politics and simply state that I find this very sad news. Mozilla has been a deeply influential company that has touched a great many parts of the world wide web, not least the part they have played in WebAssembly. For that reason, I am dedicating this issue to Mozilla and celebrating the work they have done.

asm.js

WIKIPEDIA.ORG

Around 7 years ago a team at Mozilla unveiled asm.js, a slightly odd looking JavaScript subset that was able to approach native execution speeds through the use of type-hints, a lack of garbage collection and various optimisations in the Firefox browser. I must admit, when I first saw asm.js I just didn’t “get” it! However, clearly others did.

asm.js was very much a proof of concept for WebAssembly, demonstrating that a simple low-level virtual machine could be embedded within the browser and the initial WebAssembly implementation was very much modelled on asm.js.

Without Mozilla’s asm.js project it seems quite unlikely that WebAssembly would have had the backing it needed to succeed.

A cartoon intro to WebAssembly

MOZILLA.ORG

When launching a new technology being awesome isn’t enough - you need to educate people, teach them what this new technology is, why it matters and how to use it. This seminal blog series from Lin Clark takes a complicated technology and makes it easy to understand through clear and engaging writing and great illustrations.

JavaScript to Rust and Back Again: A wasm-bindgen Tale

MOZILLA.ORG

One of the most challenging (and limiting) aspects of WebAssembly at the moment is building a suitable interface between WebAssembly and the JavaScript host. Mozilla’s wasm-bindgen was an early trailblazer, allowing automatic generation of ‘bindings’ making it very easy for Rust and JavaScript to communicate with each other.

Wasmtime

GITHUB.COM

While WebAssembly was initially designed for the web, it has has started to find success in a great many contexts including blockchain, edge, serverless and IoT. Bytecode Alliance is a group of companies that are creating standards to support the adoption of WebAssembly beyond the web, and Mozilla has been a significant part of this. They also contributed wasmtime, their standalone WebAssembly runtime, to Bytecode Alliance - a fantastic tool for anyone wanting to try our WASI (WebAssembly System Interface).

Pyodide: Bringing the scientific Python stack to the browser

MOZILLA.ORG

With WebAssembly being a new technology it needs some eye-catching and thought-provoking demonstrations in order to attract adopters. Pyodide does just that. This post describes how the team brought a Python data science stack to the browser. An amazing and very practical demonstration of what WebAssembly is capable of.

And Finally …

I’d encourage you to learn more about some of Mozilla’s many other contributions