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, because everything collapses into one term, and it therefore scores 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 and produces no graph or tree, only pixels. That is the terminal state of fusion.

History has already run this experiment. In 1996, Java applets were compiled programs delivered through the page, executing in a VM, rendering into a rectangle the web could not see into. The same description fits today’s paradigm. The applets are gone; the web’s declarative documents are still here. The reason, then and now, is the principle of least power: prefer the least powerful language that suffices for the job. 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, or a solver running 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 a program replacing the three factors, not to a program running inside one of them.

Black-box binaries served by corporations invert the property that let every reader of the early web become an author by viewing source. That inversion is the business model, not an accident.

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