The Post-Modern Web

Jun 12, 2021

Hackers and painters aren't so different, Paul Graham would say. And much like art, software engineering has gone through movements as well.

Web 1.0 (1996~2004) was about static and synchronous content. The Document Object Model (DOM) and its predecessors allowed developers to treat a webpage as a tree and modify it.

Web 2.0 (2004~2019) was about dynamic content through asynchronous JavaScript and HTTP. Some of the best examples of this are Gmail and Google Maps, which fetched mail and data on demand.

The post-modern web is about the rejection and evolution of the technologies in Web 2.0.

The evolution of the DOM. The webpage isn't modifying directly through the DOM anymore, but rather a virtual DOM, that allows developers to declaratively, rather than imperatively, describe the page. Some applications like Google Sheets and Figma write directly to the browser canvas, "drawing" applications that don't fit cleanly in a tree object model.

JavaScript is no longer the lingua franca of the web. WebAssembly allows developers to write logic that gets executed in the browser in languages like C++, Rust, Go, C#, Python, and Ruby. Figma was an early example of this, initially writing their engine in C++ and compiling it to low-level JavaScript. Now they use WebAssembly.

What is static is now dynamic. Even the most traditional static components of a website, such as the style sheets, are now being written in JavaScript or other programmatic ways.

In the post-modern web, more and more applications are looking like a browser. Desktop applications like Slack, Figma, Notion, VSCode, and more are written in Electron, which uses the same engine that Google Chrome does.

An innovation that is yet to come, but I suspect we'll see the evolution of networking in the browser. Server-to-server communication rarely happens over HTTP anymore, with developers electing to use remote procedure calls with binary wire formats. Developers will want to do this in client-to-server settings like the browser.

The post-modern web changes the way we think about foundational web technology. The post-modern web allows us to create "web" applications that we never thought possible.