(2021-10-02) Brander Building New Weblike Things
Gordon Brander: Building new weblike things. Consider how we might build new open systems with weblike characteristics.
Attempts to build new weblike systems often start by forking the web browser. If we fork the browser, we might keep the good stuff, drop the bad stuff, and add new stuff
Browser engines are complex beasts with a particular metabolism. Forking a browser is like adopting an elephant. If you fork a browser engine in any significant way, you will accidentally turn your project into a browser project and will have to hire a dozen C++ engineers to get anywhere
Why is the web so difficult to change? It didn’t start out this way. Building a browser used to be the easiest thing in the world. HTML was originally designed to be a lowest-common-denominator, something you could implement anywhere
But the web didn’t stay that way. HTML gradually evolved to eat every adjacent use-case. The carefully decoupled layers of platform, browser, content, style, behavior all coevolved together, becoming complexly interdependent
the web is an evolved system, and the API surface of an evolved system is infinite
This makes taking “the good parts” of the web impossible. It’s all intertwined and inseparable!
So perhaps we should start over and build a new web from scratch? Alan Kay proposed we do exactly that: 2006, “Steps Toward The Reinvention of Programming”
Kay is right. It is easy to do better from first principles. What isn’t easy is rebuilding the network effects of the web from scratch.
So the web is difficult to evolve, and difficult to replace, but there is a way through this dilemma: Podcasts offer a template.
Podcasting was so asymmetric it created its own ecological niche, While Facebook’s rise choked out the RSS-blogging ecosystem, the podcasting system remained untouched, even though it was built out of the same technologies.
The web is an alphabet for creating weblike things. (composition)
Podcasts share most of the web’s DNA—URLs and HTTP—but swap HTML for RSS. This neatly side-steps the challenge of forking a browser engine.
What if we viewed the web as an alphabet for building new weblike things?
URLs + HTTP + JSON = REST APIs
URLs + P2P + HTML = Web3
The design space here feels wide open, and the technological challenge more approachable than forking a browser.
It seems likely that much of our lives will be mediated by networked software. Indeed, this is already the case. Much of this mediation happens through platforms owned and controlled by companies, with a few exceptions—web, email, podcasts. It seems valuable to build a few more platforms for networked software that are open, not-owned. Preferably, as many as possible.
Edited: | Tweet this! | Search Twitter for discussion