Het artikel reflecteert op Project Xanadu van pionier Ted Nelson, die in 1965 een visie had van een 'docuverse': een systeem van hypertext waarbij citaten via referentie (transclusion) worden bewaard en versies nooit worden overschreven. Hoewel dit systeem technisch onhaalbaar was in zijn tijd en werd ingehaald door het 'afgeplatte' web, stelt de auteur dat de nodige infrastructuur nu wel bestaat.
De technologische basis Volgens Sobo is de 'afhankelijkheidsboom' voor een dergelijk systeem nu compleet dankzij:
- Lamport-tijdstempels voor chronologie zonder centraal punt.
- Merkle-bomen (Git) voor onveranderlijke naamgeving.
- CRDT's voor convergentie zonder coördinatie.
- Goedkope opslag en snelle netwerken.
- MicroVM's (Firecracker) en tools zoals Tree-sitter en GPUI.
De rol van AI-agents De cruciale ontbrekende schakel was de gebruiker. Waar mensen tevreden zijn met een versimpelde weergave van informatie, kunnen AI-agents de complexe lagen van subtekst, bronnen en versies die Nelson voor ogen had, moeiteloos verwerken.
DeltaDB en de toekomst Deze visie wordt nu geïmplementeerd in DeltaDB. In tegenstelling tot traditionele versiebeheer-systemen, bewaart DeltaDB fragmenten met stabiele identiteiten. Hierdoor kunnen agents ankers creëren die geldig blijven, zelfs als de omringende code verandert. Om de fouten uit het verleden te vermijden, integreert Delta naadloos met bestaande Git-repositories, waardoor het een brug slaat tussen de huidige live-sessies en een permanent, verbonden archief.
Xanadu wachtte op agents
Ted Nelson is me dit jaar vaak door het hoofd gegaan.
Nelson was een pionier in de informatica en bedacht in 1965 de term hypertext als onderdeel van het project dat zijn carrière zou definiëren: Project Xanadu. Met Xanadu had hij een specifieke visie op wat computing zou kunnen zijn, wat hij het docuverse noemde. Hij stelde zich een systeem voor dat elke versie van een document kon bewaren; hypertext-links zouden zowel hun bron als hun bestemming kennen, en citaten zouden via referentie (in plaats van kopie) worden bewaard, zodat elke opgenomen tekst zijn identiteit en bron behield. Alles zou in deze versie van computing intertwingled en xanalogical zijn. We hebben het hier over attributie tot op het niveau van het tekstfragment (de span).
Om xanalogical te zijn, moet men twee regels volgen: kopieer nooit, verwijs altijd (ook wel bekend als een 'Nelsonisme': transclusion). Overschrijf nooit, maak altijd een versie. Zoals Nelson het ontwierp, zou Xanadu de complexiteit en de enorme administratieve last van het systeem zelf beheren, zodat gebruikers alleen de voordelen ervoeren van een systeem dat nooit iets kon vergeten.
De visie van onbeperkte administratie vereist de realiteit van onbeperkte opslag en een toekomstbestendig naamgevingsschema, waarvan geen van beide bestond in de decennia dat Nelson aan Xanadu werkte. Toen de webtechnologie in de jaren 90 explodeerde, omzeilden ontwikkelaars xanalogical computing ten gunste van gemak: links zijn eenvoudige strings die breken als hun doel verplaatst. Onderhoud werd het probleem van de gebruikers — in plaats van de verantwoordelijkheid van het systeem — maar het stelde iedereen in staat om snel producten te lanceren, en dat deden ze ook. Xanadu vervaagde van de belofte van een nieuw tijdperk tot de meest beruchte vaporware in de informatica.
Nelson heeft zijn hele carrière besteed aan het uitleggen dat het web een afgeplatte parodie is van wat hypertext had moeten zijn. Hij heeft gelijk, maar het maakte niet uit omdat mensen niet daadwerkelijk in staat hoefden te zijn om elke link te volgen of elke versie te vergelijken. We zijn een rusteloze soort en geneigd om de links te volgen of de versies te lezen die we anderen zien volgen. 'Afgeplat' was goed genoeg.
Toen kwamen de agents.
Wat een agent tot een onhandige collaborateur maakt, maakt hem ook tot een perfecte burger voor Nelsons systeem. Agents kunnen meer lagen van subtekst volgen dan mensen tegelijkertijd in hun hoofd kunnen houden, zoals de bronnen achter een citaat, eventuele discussies daaromheen en stack traces die gekoppeld zijn aan de exacte code die is uitgevoerd. Een fragmentgebaseerde representatie maakt deze referenties verliesvrij, zodat elke laag verbonden blijft aan hetzelfde tekstfragment terwijl de tekst verandert. Agents kunnen deze dimensies samen lezen, ze citeren zodat mensen hun werk kunnen controleren, en geduldig elke link, elke keer, volgen. Maar die links moeten wel daadwerkelijk ergens bestaan voordat een agent ze kan vinden.
Wanneer ik Nelsons visie nu opnieuw bekijk, herken ik de ontwerpdoelen van DeltaDB en de belofte van Delta. Na decennia van het platdrukken van historie om te voldoen aan de limieten van de menselijke aandachtsspanne, bevinden we ons in een nieuwe realiteit die beter bediend zou worden door iets dat meer... xanalogical is.
Hoe bouw je een systeem voordat de onderdelen bestaan?
Een paar jaar geleden schreef ik over het bekijken van de demo van Engelbart uit 1968 en mijn realisatie dat zijn team, om een collaboratieve editor te bouwen, alles moest uitvinden waar het op vertrouwde: een nieuwe programmeertaal, een besturingssysteem en displays.
Nelson had hetzelfde probleem (maar met veel minder financiering dan Engelbart). Hij kon Xanadu niet bouwen omdat de meeste onderdelen niet bestonden, zoals een manier om inhoud te benoemen zonder dat daar een autoriteit voor nodig was, of opslag die goedkoop genoeg was om nooit iets te hoeven verwijderen. Zijn teams bouwden jarenlang hun eigen datastructuren met de hand, maar het project stierf een langzame dood. Wired beschreef het verhaal van Nelson als een kwestie van wanbeheer, maar ik denk dat hij Xanadu simpelweg decennia voordat de afhankelijkheidsboom bestond, had gespecificeerd.
De afhankelijkheidsboom bestaat nu
We kunnen Delta vandaag bouwen omdat zestig jaar aan roadmaps van anderen de ontbrekende stukken van het docuverse hebben geleverd: kernelontwikkeling, fotopslag, serverless cold starts en collaboratieve cursors. Ik vind het fascinerend dat doorbraken vaak een gewone dagtaak hebben, maar toch het volgende tijdperk van computing mogelijk maken.
- Een klok voor een wereld zonder centrum: Lamport-tijdstempels (1978). Elke operatie door elke mens en agent wordt voor altijd benoemd door een actor plus een Lamport-tijdstempel.
- Namen die niet kunnen liegen: Merkle-bomen (1979), gepopulariseerd door Git in 2005. Een Git-commit-hash benoemt een exacte, onveranderlijke projectstatus;
DeltaDB benoemt elke status tussen commits via de Git-commit waaruit het voortkomt en de set actor- en tijdstempel-delta-ID's die daar bovenop zijn toegepast.
- Convergentie zonder coördinatie: CRDT's, geformaliseerd in 2011, en het centrum van het werk van Zed in het afgelopen decennium. Een Delta-werkboom kan tegelijkertijd worden bewerkt door verschillende mensen en agents op verschillende continenten.
- Opslag te goedkoop om te verwijderen: Een gigabyte kostte in 1981 tienduizenden dollars; nu kost het een cent. We bewaren standaard elke versie van alles.
- Netwerken die alles repliceren: Altijd-aan en snel breedband haalde in het midden van de jaren 2000 inbelverbindingen in. Elke thread is live, gerepliceerde data op de machine van elke deelnemer en in de browser.
- Machines die in milliseconden worden opgeroepen: Firecracker-klasse microVM's (2018). Agents in Delta kunnen midden in een gesprek een nieuwe, geïsoleerde cloudmachine voorzien.
- Documenten als weergaven over permanente inhoud: Tree-sitter van Max Brunsfeld (2018), snel genoeg om opnieuw te parsen terwijl je typt. GPUI, gepionierd met Zed, snel genoeg om een nieuwe interface af te leiden uit de applicatiestatus telkens wanneer een frame wordt getekend. Een Delta-thread is een live projectie van zijn permanente gestructureerde historie, die opnieuw wordt berekend in plaats van wordt opgeslagen als een afgeplat document.
Op één detail — na een hele carrière waarin hem werd verteld dat zijn dromen te groot waren — droomde Nelson te klein. De laatste afhankelijkheid die hij miste, was een nieuw soort gebruiker. Hij stelde zich geen kunstmatige lezers voor, hoewel ze bestonden in sciencefiction (zoals Asimov's Multivac of Stephenson's Librarian).
Hoewel Xanadu decennialang werd geblokkeerd door ontbrekende componenten, was de perfecte gebruiker wat het het meest nodig had.
Waarom het docuverse zich manifesteert in versiebeheer
Het grootste deel van de werkelijke codecreatie is altijd tussen commits door gebeurd, maar het deed minder pijn om de context af te platten omdat we konden vertrouwen op het menselijk geheugen (en niemand zou in ieder geval volledige verslagen van elke toetsaanslag lezen). Maar agents onthouden niets in hun hoofd en ze lezen alles, dus we hebben een manier nodig om de nieuwe bron van waarheid vast te leggen met precies datgene wat Nelson specificeerde: permanentie en verbinding.
Elke Delta-thread voldoet aan die belofte. Het gesprek en de code worden samen vastgelegd in een gedeelde historie. Op het scherm ziet een bestand er nog steeds uit als een eendimensionale reeks tekens, maar onderhuids representeert DeltaDB dit als fragmenten met stabiele identiteiten. Die identiteiten stellen ons in staat om ankers te creëren: referenties naar tekstfragmenten die nog steeds kunnen worden opgelost nadat de omringende code is gewijzigd. Een regelnummer kan uitdrukken waar tekst verschijnt in één snapshot, terwijl een anker bewaart welk fragment we bedoelen over verschillende snapshots heen.
We hebben onderzocht hoe agents kunnen bouwen op dat coördinatensysteem. De bestanden en symbolen die eerdere agents herhaaldelijk hebben gelezen, bewerkt, geciteerd of zijn teruggekeerd naar, kunnen oriëntatiepunten worden voor de volgende agent. Deze worden opgelost tegen de code zoals deze nu bestaat en gelinkt naar de gesprekken waarin dat begrip is gevormd. Door de causale metadata onder die oppervlakterepresentatie te bewaren — zoals welke operatie elk fragment produceerde en op welke eerdere status het was gebaseerd — geeft DeltaDB het model een manier om niet alleen de huidige code te doorlopen, maar ook de herkomst, de opgebouwde aandacht en de eerdere redeneringen.
De vloek van Xanadu vermijden
Xanadu had een laatste faalmodus, die zelfgekozen was: het weigerde samen te werken met minderwaardige formaten. Terwijl we DeltaDB aan de wereld presenteren, leren we van die fout. We zullen werken met de git-repository die je al hebt. Elke thread is ook een git-branch, zodat teamleden die Delta nooit openen een normale repo zien, en omdat de bestanden echt zijn, integreert het naadloos met elk instrument dat een agent kan gebruiken. Je kunt je repo blijven spiegelen naar GitHub om samen te werken met iedereen die nog niet klaar is voor de overstap (dat is onze aanpak voor onze open source IDE, Zed, tijdens deze overgangsperiode).
Engelbart en Nelson waren profeten van de vroege informatica, maar we hebben de visie van geen van beiden volledig gerealiseerd: van de eerste namen we de muis over (en uiteindelijk multiplayer-editing), en van de laatste namen we het woord hypertext. Beide ideeën overleefden, maar niet met de diepgang die hun makers voor ogen hadden. We scheiden nog steeds de live-sessie van het duurzame verslag: discussie, tussenstappen en intenties worden afgeplat tot een definitief bestand of commit, terwijl links die gebonden zijn aan paden en regelnummers vervallen zodra de code verschuift. Ik hoop dat Delta-threads beide visies tegelijkertijd verenigen: een live-sessie die een permanent, verbonden literatuur achterlaat, omdat de sessie en het verslag hetzelfde object zijn.
Elke eigenschap die we nodig hadden om Delta en DeltaDB te bouwen, was door Nelson gespecificeerd voordat ik werd geboren. En hoewel mijn doel niet is om Xanadu te realiseren, voel ik nog steeds een deel van de onrust die Nelson moet hebben ervaren terwijl hij hoopte dat een langgekoesterde visie in handen van mensen zou komen. Zestig jaar is een lange tijd voor een idee om op zijn gebruikers te wachten. Ze zijn er nu.
Xanadu wachtte op agents
Ted Nelson is me dit jaar vaak door het hoofd gegaan.
Nelson was een pionier in de informatica en bedacht in 1965 de term hypertext als onderdeel van het project dat zijn carrière zou definiëren: Project Xanadu. Met Xanadu had hij een specifieke visie op wat computing zou kunnen zijn, wat hij het docuverse noemde. Hij stelde zich een systeem voor dat elke versie van een document kon bewaren; hypertext-links zouden zowel hun bron als hun bestemming kennen, en citaten zouden via referentie (in plaats van kopie) worden bewaard, zodat elke opgenomen tekst zijn identiteit en bron behield. Alles zou in deze versie van computing intertwingled en xanalogical zijn. We hebben het hier over attributie tot op het niveau van het tekstfragment (de span).
Om xanalogical te zijn, moet men twee regels volgen: kopieer nooit, verwijs altijd (ook wel bekend als een 'Nelsonisme': transclusion). Overschrijf nooit, maak altijd een versie. Zoals Nelson het ontwierp, zou Xanadu de complexiteit en de enorme administratieve last van het systeem zelf beheren, zodat gebruikers alleen de voordelen ervoeren van een systeem dat nooit iets kon vergeten.
De visie van onbeperkte administratie vereist de realiteit van onbeperkte opslag en een toekomstbestendig naamgevingsschema, waarvan geen van beide bestond in de decennia dat Nelson aan Xanadu werkte. Toen de webtechnologie in de jaren 90 explodeerde, omzeilden ontwikkelaars xanalogical computing ten gunste van gemak: links zijn eenvoudige strings die breken als hun doel verplaatst. Onderhoud werd het probleem van de gebruikers — in plaats van de verantwoordelijkheid van het systeem — maar het stelde iedereen in staat om snel producten te lanceren, en dat deden ze ook. Xanadu vervaagde van de belofte van een nieuw tijdperk tot de meest beruchte vaporware in de informatica.
Nelson heeft zijn hele carrière besteed aan het uitleggen dat het web een afgeplatte parodie is van wat hypertext had moeten zijn. Hij heeft gelijk, maar het maakte niet uit omdat mensen niet daadwerkelijk in staat hoefden te zijn om elke link te volgen of elke versie te vergelijken. We zijn een rusteloze soort en geneigd om de links te volgen of de versies te lezen die we anderen zien volgen. 'Afgeplat' was goed genoeg.
Toen kwamen de agents.
Wat een agent tot een onhandige collaborateur maakt, maakt hem ook tot een perfecte burger voor Nelsons systeem. Agents kunnen meer lagen van subtekst volgen dan mensen tegelijkertijd in hun hoofd kunnen houden, zoals de bronnen achter een citaat, eventuele discussies daaromheen en stack traces die gekoppeld zijn aan de exacte code die is uitgevoerd. Een fragmentgebaseerde representatie maakt deze referenties verliesvrij, zodat elke laag verbonden blijft aan hetzelfde tekstfragment terwijl de tekst verandert. Agents kunnen deze dimensies samen lezen, ze citeren zodat mensen hun werk kunnen controleren, en geduldig elke link, elke keer, volgen. Maar die links moeten wel daadwerkelijk ergens bestaan voordat een agent ze kan vinden.
Wanneer ik Nelsons visie nu opnieuw bekijk, herken ik de ontwerpdoelen van DeltaDB en de belofte van Delta. Na decennia van het platdrukken van historie om te voldoen aan de limieten van de menselijke aandachtsspanne, bevinden we ons in een nieuwe realiteit die beter bediend zou worden door iets dat meer... xanalogical is.
Hoe bouw je een systeem voordat de onderdelen bestaan?
Een paar jaar geleden schreef ik over het bekijken van de demo van Engelbart uit 1968 en mijn realisatie dat zijn team, om een collaboratieve editor te bouwen, alles moest uitvinden waar het op vertrouwde: een nieuwe programmeertaal, een besturingssysteem en displays.
Nelson had hetzelfde probleem (maar met veel minder financiering dan Engelbart). Hij kon Xanadu niet bouwen omdat de meeste onderdelen niet bestonden, zoals een manier om inhoud te benoemen zonder dat daar een autoriteit voor nodig was, of opslag die goedkoop genoeg was om nooit iets te hoeven verwijderen. Zijn teams bouwden jarenlang hun eigen datastructuren met de hand, maar het project stierf een langzame dood. Wired beschreef het verhaal van Nelson als een kwestie van wanbeheer, maar ik denk dat hij Xanadu simpelweg decennia voordat de afhankelijkheidsboom bestond, had gespecificeerd.
De afhankelijkheidsboom bestaat nu
We kunnen Delta vandaag bouwen omdat zestig jaar aan roadmaps van anderen de ontbrekende stukken van het docuverse hebben geleverd: kernelontwikkeling, fotopslag, serverless cold starts en collaboratieve cursors. Ik vind het fascinerend dat doorbraken vaak een gewone dagtaak hebben, maar toch het volgende tijdperk van computing mogelijk maken.
- Een klok voor een wereld zonder centrum: Lamport-tijdstempels (1978). Elke operatie door elke mens en agent wordt voor altijd benoemd door een actor plus een Lamport-tijdstempel.
- Namen die niet kunnen liegen: Merkle-bomen (1979), gepopulariseerd door Git in 2005. Een Git-commit-hash benoemt een exacte, onveranderlijke projectstatus;
DeltaDB benoemt elke status tussen commits via de Git-commit waaruit het voortkomt en de set actor- en tijdstempel-delta-ID's die daar bovenop zijn toegepast.
- Convergentie zonder coördinatie: CRDT's, geformaliseerd in 2011, en het centrum van het werk van Zed in het afgelopen decennium. Een Delta-werkboom kan tegelijkertijd worden bewerkt door verschillende mensen en agents op verschillende continenten.
- Opslag te goedkoop om te verwijderen: Een gigabyte kostte in 1981 tienduizenden dollars; nu kost het een cent. We bewaren standaard elke versie van alles.
- Netwerken die alles repliceren: Altijd-aan en snel breedband haalde in het midden van de jaren 2000 inbelverbindingen in. Elke thread is live, gerepliceerde data op de machine van elke deelnemer en in de browser.
- Machines die in milliseconden worden opgeroepen: Firecracker-klasse microVM's (2018). Agents in Delta kunnen midden in een gesprek een nieuwe, geïsoleerde cloudmachine voorzien.
- Documenten als weergaven over permanente inhoud: Tree-sitter van Max Brunsfeld (2018), snel genoeg om opnieuw te parsen terwijl je typt. GPUI, gepionierd met Zed, snel genoeg om een nieuwe interface af te leiden uit de applicatiestatus telkens wanneer een frame wordt getekend. Een Delta-thread is een live projectie van zijn permanente gestructureerde historie, die opnieuw wordt berekend in plaats van wordt opgeslagen als een afgeplat document.
Op één detail — na een hele carrière waarin hem werd verteld dat zijn dromen te groot waren — droomde Nelson te klein. De laatste afhankelijkheid die hij miste, was een nieuw soort gebruiker. Hij stelde zich geen kunstmatige lezers voor, hoewel ze bestonden in sciencefiction (zoals Asimov's Multivac of Stephenson's Librarian).
Hoewel Xanadu decennialang werd geblokkeerd door ontbrekende componenten, was de perfecte gebruiker wat het het meest nodig had.
Waarom het docuverse zich manifesteert in versiebeheer
Het grootste deel van de werkelijke codecreatie is altijd tussen commits door gebeurd, maar het deed minder pijn om de context af te platten omdat we konden vertrouwen op het menselijk geheugen (en niemand zou in ieder geval volledige verslagen van elke toetsaanslag lezen). Maar agents onthouden niets in hun hoofd en ze lezen alles, dus we hebben een manier nodig om de nieuwe bron van waarheid vast te leggen met precies datgene wat Nelson specificeerde: permanentie en verbinding.
Elke Delta-thread voldoet aan die belofte. Het gesprek en de code worden samen vastgelegd in een gedeelde historie. Op het scherm ziet een bestand er nog steeds uit als een eendimensionale reeks tekens, maar onderhuids representeert DeltaDB dit als fragmenten met stabiele identiteiten. Die identiteiten stellen ons in staat om ankers te creëren: referenties naar tekstfragmenten die nog steeds kunnen worden opgelost nadat de omringende code is gewijzigd. Een regelnummer kan uitdrukken waar tekst verschijnt in één snapshot, terwijl een anker bewaart welk fragment we bedoelen over verschillende snapshots heen.
We hebben onderzocht hoe agents kunnen bouwen op dat coördinatensysteem. De bestanden en symbolen die eerdere agents herhaaldelijk hebben gelezen, bewerkt, geciteerd of zijn teruggekeerd naar, kunnen oriëntatiepunten worden voor de volgende agent. Deze worden opgelost tegen de code zoals deze nu bestaat en gelinkt naar de gesprekken waarin dat begrip is gevormd. Door de causale metadata onder die oppervlakterepresentatie te bewaren — zoals welke operatie elk fragment produceerde en op welke eerdere status het was gebaseerd — geeft DeltaDB het model een manier om niet alleen de huidige code te doorlopen, maar ook de herkomst, de opgebouwde aandacht en de eerdere redeneringen.
De vloek van Xanadu vermijden
Xanadu had een laatste faalmodus, die zelfgekozen was: het weigerde samen te werken met minderwaardige formaten. Terwijl we DeltaDB aan de wereld presenteren, leren we van die fout. We zullen werken met de git-repository die je al hebt. Elke thread is ook een git-branch, zodat teamleden die Delta nooit openen een normale repo zien, en omdat de bestanden echt zijn, integreert het naadloos met elk instrument dat een agent kan gebruiken. Je kunt je repo blijven spiegelen naar GitHub om samen te werken met iedereen die nog niet klaar is voor de overstap (dat is onze aanpak voor onze open source IDE, Zed, tijdens deze overgangsperiode).
Engelbart en Nelson waren profeten van de vroege informatica, maar we hebben de visie van geen van beiden volledig gerealiseerd: van de eerste namen we de muis over (en uiteindelijk multiplayer-editing), en van de laatste namen we het woord hypertext. Beide ideeën overleefden, maar niet met de diepgang die hun makers voor ogen hadden. We scheiden nog steeds de live-sessie van het duurzame verslag: discussie, tussenstappen en intenties worden afgeplat tot een definitief bestand of commit, terwijl links die gebonden zijn aan paden en regelnummers vervallen zodra de code verschuift. Ik hoop dat Delta-threads beide visies tegelijkertijd verenigen: een live-sessie die een permanent, verbonden literatuur achterlaat, omdat de sessie en het verslag hetzelfde object zijn.
Elke eigenschap die we nodig hadden om Delta en DeltaDB te bouwen, was door Nelson gespecificeerd voordat ik werd geboren. En hoewel mijn doel niet is om Xanadu te realiseren, voel ik nog steeds een deel van de onrust die Nelson moet hebben ervaren terwijl hij hoopte dat een langgekoesterde visie in handen van mensen zou komen. Zestig jaar is een lange tijd voor een idee om op zijn gebruikers te wachten. Ze zijn er nu.