Chapter 12. The Applet Returns
WebAssembly — Wasm — as a paradigm treats the browser as a virtual machine and the application as one compiled binary. It is the extreme case of fusion: everything collapsed into one term, zero on all of S1–S4 by construction. The format’s virtues — any language, compiled, opaque — remove every seam the properties require. There is nothing inside the term for the web’s semantics to address, and that is the design.
One step separates this column from the last. Chapter 11’s fused term still emitted a DOM — a tree the platform could at least inspect. The paradigm audited here renders into a canvas or a buffer. Chapter 6 classified every framework as a strategy for the graph→tree crossing. This one declines the crossing altogether — no graph, no tree, pixels. The terminal state of fusion.
History has already run this experiment. Compiled programs delivered through the page, executing in a VM, rendering into a rectangle the web could not see into: the description fits 1996 as well as it fits today. In 1996, its name was Java applets. The web’s declarative documents outlived them. The principle of least power — prefer the least powerful language that suffices for the job — was the reason then and is the reason now. The W3C Technical Architecture Group made it a formal finding in 2006: The Rule of Least Power. The finding is its own document, not, as often assumed, part of AWWW.
The concession is Wasm as a leaf: a codec, a physics kernel, a solver inside one factor of a proper factorization. A leaf is useful and harmless, because computation inside a factor leaves every property intact. The factor’s boundary is still a declarative term. The objection is to computation replacing the factorization, not to computation itself.
Black-box binaries served by corporations invert the property that let every reader of the early web become an author by viewing source. The inversion is the business model.
Column: Wasm-as-paradigm.
| Wasm-as-paradigm | |
|---|---|
| R1 | ✓ — any state, in linear memory |
| R2 | ✗ — linear memory has no merge |
| R3 | ✗ — references are addresses in a private address space |
| S1 | ✗ — by construction |
| S2 | ✗ — by construction |
| S3 | ✗ — by construction |
| S4 | ✗ — by construction |
S1 through S4, zero by construction: the terminal state of fusion, scored.