The Story So Far
In the beginning, computers were bespoke, monolithic, scientific and military calculation machines. Then they were time-sharing mainframes, where many people could share compute resources of a single centralized computer through a lightweight terminal. Finally, once capable hardware had gotten small and cheap enough to fit inside those terminals, the personal computer was born, giving the common person the superpower of rapid information processing and symbol manipulation in their own home and under their complete control.
When it first arrived on the scene, the personal computer was a wide open field of opportunity with the promise of becoming a tool for liberation. Unfortunately, it was born precisely at the dawn of the neoliberal era and nearly all of the paths towards liberation have since been cut off, instead being led by corporate interests towards a narrowing funnel for advertising, data harvesting, and control.
Corporate competition prioritized and essentially required platform lock-in, and so commercial operating systems put up barriers for compatibility between different systems, even with the same processor. Once the mainstream internet was born, the most successful companies were once again those that created more lock-in by providing online services that are incompatible with other services, whether this be e-commerce through Amazon or socializing via Facebook. With the emergence of “The Cloud”, corporate entities achieved the final form of platform lock-in, where applications are now closed source web services that are accessed from the browser. The program runs on their servers and your data lives on their servers. Adding insult to injury, most users have also been tricked into believing that this regression back to the time-sharing model of computing is somehow "progress".
The Opportunity
Luckily, due to the heroic talent of hardware engineers, the gross negligence of software developers, and the corporate marketing need to perpetually make some numbers go up, the CPUs in the “time-sharing terminals” we all use have maintained a market pressure to keep getting smaller, more powerful, and more efficient. Right now in 2023, a previous-generation base model iPad (~$200 used) has a CPU that contains about 9 billion transistors with a power draw of around 4 watts, while the Commodore 64’s CPU had about 4000 transistors running at 16 watts. Meanwhile, the majority of the time those 9 billion transistors are put to use running the massively inefficient and wasteful modern browsers and operating systems that we rely on to get anything done. We don’t have to run this bloated software; this is to say that if the raw power of 4000 transistors sparked the personal computing revolution, then we already have the hardware we need for a personal computing renaissance. All that holds us back is software.
The core motivation behind the Coalescent Computer is to pick up the threads of a liberation-minded personal computing paradigm. It is not about taking a small step in that direction from where we stand now in 2023, but about taking a large imaginative leap from where we were in the mid 80s to where we ought to be today. It is about completely correcting the 40-year drift towards corporate enclosure, control, and centralization. To accomplish this goal, the Coalescent Computer takes a completely from-scratch approach. It carries no direct technology forward from the world wide web or browser, nor does it directly rely on a modern operating system (though it will realistically live emulated inside of them for quite a while).
The Next Step
At its root, it is a simple virtual instruction set and a protocol for a universal data model, both designed to be uncompromising for “local-first” use cases, yet still coalescent over the network. All code is data, and all data is referenced by hash. Routines invoke other routines via their data hash, so running a command, data transformation, application, or even an “operating system” can be done with a single recursively-resolved hash. Instead of a file system and a disk, data is stored in a database that communicates directly with the CPU. To load a piece of data into memory, just request the hash. Even better, this translates to the network: if you’re trying to load a hash and your local database comes up empty, you can forward that request to the network, whether to your home server, a p2p mesh of friends, or a high performance regional replication server… no matter the network configuration, it’s all the same request.
And what does it feel like to use a system like this? With a simple virtual stack machine at its heart, we have machine code that can be read, reasoned about, and written by almost anyone who is curious enough to look under the hood. Since routines are nearly required to be small and well modularized, and since each routine is loaded once in program memory, all of our “user-facing applications” end up just being direct user interfaces to running transformations on data. This means that casual users can use graphical UIs, and power users have unparalleled “scripting” capabilities by design; just find the routine that executes an operation you’re interested in, link a short hand name to that routine’s hash, and call it from the command line. In fact, we can create nested “name-tables” to create namespaces and give names to any piece of data to maintain the human abstraction of referring to data by name, while removing the possibility of name or location collisions on the network. When running the Coalescent Computer system on a collection of personal devices, you can set up a home server for longer term storage of all of your data which all of your "ephemeral" devices can pull from when it doesn’t have something locally. You keep all of your data, and run data transformations on it locally, and share only what you choose to share. Since all of the code that executes on your devices is referenced by its hash, you can subscribe to malware and security detectors to let you know when a loaded routine has been determined as compromised. And since we’ve thrown out the bloated browser and the heavy modern operating system, you can use cheaper and more repairable hardware, especially for personal replication nodes or other narrow-purpose machines.
The Coalescent Computer is simple, powerful, and liberating. It puts the power of computation back in your hands, and it treats you like a curious and intelligent human being. It is personal, social, and evolvable. It is designed to function well offline, and to coalesce within a network. The Coalescent Computer is the next stage in the personal computer revolution.