WebAssembly is not just a low-level assembly-like language, but a transformative abstraction boundary that allows for flexible, modular computing across various platforms and applications.
WebAssembly (Wasm) transcends the typical descriptions of being an "assembly-like language" or "virtual machine" by representing a new form of fundamental abstraction boundary within computing systems. It provides a way to define interfaces, segregate parts of a system, and compose those parts into a cohesive whole.
Considering the practical applications of Wasm, one can appreciate its role in diverse contexts, such as IoT devices, cloud-based function-as-a-service platforms, and extensible software. Wasm offers a unique value proposition by allowing systems to carry out secure, controlled, and efficient software updates, behavior limitations, and extension integrations.
WebAssembly's capability to create solid boundaries is compared to Conway's law, which observes that software architectures mirror organizational structures. By highlighting the benefits of appropriate abstraction boundaries, such as ensuring safe execution in extensible software like image editors or text libraries, Wasm is contextualized as not just a technical innovation, but a new paradigm in software component composition and scaling.
The author suggests that WebAssembly's versatility and acceptance might encourage its adoption across various domains, including the replacement of existing technologies, such as eBPF in the Linux kernel, indicating a wide range of possible future applications for Wasm - even going so far as speculating about a WebAssembly-based operating system.
In the context of web development, Wasm has made strides with billions of users yet remains peripheral in writing web front-ends. However, the addition of managed data types to Wasm implies potential changes in the way web applications interact with the DOM and use memory, possibly leading to transitions where entire applications switch from JavaScript to Wasm/GC.