12 december 2007
Het zal de grootte hebben van het Internet in Californie. Delen van dat systeem bestaan al, we weten het alleen nog niet. En we zullen onze programmeertalen en ontwikkelingstechnieken moeten herhvormen en her-denken om het te kunnen realiseren. We hebben het niet over Microsoft's nieuwe Windowsbesturingssysteem (al zou dat heel goed kunnen), maar over het eerste Ultra Large System (ULS) (PDF-download !) ter wereld, die zal functioneren als een stad, altijd in beweging en zich ontwikkelend. Van dat systeem zullen we binnen de komende twintig jaar de eerste stappen zien. Dat is althans de mening van Richard Gabriel, een 'distinguished engineer' van IBM, die op een recente QCon conferentie in San Francisco een verhaal hield over het ULS. Natuurlijk, zo zullen velen zeggen, zo'n systeem is er al: het Internet. Of dat systemen als Google, Amazon of eBay met hun enorme server-fabrieken en massale processen als ULS beschouwd kunnen worden. Deze komen echter niet overeen met de definitie van 'groot' die Gabriel aanhoudt.
Een ULS zal nooit ophouden te bestaan: ze zijn te groot om vervangen te worden en zullen onlosmakelijk verbonden zijn met de 'day-to-day mission'. Zij zullen zich in de loop der tijd ontwikkelen met gedrag dat niet of nauwelijks gepland is. Gabriel, die is gespecialiseerd in architectuur, ontwerp en implementatie van 'extraordinarily large, self-sustaining systems', zegt dat 'the first ULS will be beyond human comprehension because it's so large'. Of om het in meer concrete termen uit te drukken: 'it would be like every single person on the planet today writing two and a half pages of Java code'. Een ander belangrijk verschil met het Internet is 'you go there to cheat on your homework or read porn – these are subsets. ULS is distinct, in that it does a coherent set of things. It's the size of the internet in California, but [it's] doing less stuff'. De grootte en de voortdurende activiteit betekent dat 'changes will have to be made while it's running. Everything is going to be failing continually, so there's no such thing as perfection or reliability'. Het ULS-concept moet benaderd worden 'using modularity, because building such a thing from both a technological or project perspective is beyond the comprehension or the abilities of one person or one group – even today's distributed, open source projects, which are too small'. De modulariteit moet worden herdacht in analogie van biologische organen, zoals de lever, die 'have transparency and allow self sustaining'. Ook de programmeertalen moeten veranderen, door te concentreren op de abstractie. 'One of the things we need to do is re-think the way programming language people think about software. Today it's about how the software talks to a compiler. But there are other things outside the compiler. We need to think of programs as abstracted, isolated things. Anyone alive in 1958 could understand the programming languages we have today. Physicists would be surprised by what we know in physics today. That's bad'. Een zichzelf onderhoudend, zichzelf genezend systeem, waarop de mens nog maar weinig greep heeft. Hoe knap ook, het is nog maar de vraag of we daar op zitten te wachten….