Discover more from Matt Rickard
Serverside, or Clientside WASM?
WebAssembly (WASM) is a compilation target for many programming languages – you can compile things like Go to WASM, Rust to WASM, Python to WASM, etc. It also provides an execution environment for these binaries, one that is memory-safe, sandboxes, and can optionally be run inside a browser.
The question: Will WASM be more successful serverside or clientside?
I believe clientside.
Serverside, WASM competes with Docker containers as a packaging and execution target. Containers are successful because they allow developers to package more of the runtime environment into the artifact – environment variables, a Linux filesystem, commands, and natively generated binaries that work the same inside and out of a container. WASM has none of this as a packaging format. As a runtime environment, containers have namespace isolation: user, process, network, mount, and IPC. While it's plausible that you can hook WASM into container orchestrators (see krustlet), I don't see enough of an improvement to change the status quo. Edge functions often use WASM runtimes for startup time, but I imagine lightweight VMs like Firecracker are a much better fit.