Keep it simple, stupid

000a25

Katka nam me mee naar een ruimte in een andere vleugel van het gebouw. Ze straalde als altijd, in weerwil van haar serieuze zelf, en ze wist alles over de wiskundige fundamenten van neurale netwerken. De ruimte stond vol met kasten van blauw gemoffeld staal. Voor een van die kasten stond een stoel, precies op de plek waar de massieve rij door een nisje onderbroken werd. Ik zag een beeldscherm en een toetsenbord.

‘Hij is Russisch’, legde Katka verontschuldigend uit. ‘Kijk, daar lopen de waterleidingen.’

‘Waterleidingen?’ vroeg ik.

‘Om hem te koelen.’

‘Indrukwekkend’, zei ik. ‘Wat doet-ie?’

‘Niets. Waardeloos apparaat. We gebruiken hem alleen nog om te mailen.’

Dat was Praag, 1991. De eerste pc’s, nog met ms-dos, hadden hun weg gevonden naar het informatica-instituut aan de Moldau waar ik voor een half jaar neergestreken was. Inmiddels mag ik aannemen dat de Russische machine definitief is uitgeschakeld, waarschijnlijk op het moment dat het instituut zijn eigen energierekeningen moest gaan betalen. Soms denk ik nog even terug aan het rekenmonster.

Half februari haalde Microsoft de voorpagina’s door een beveiligingsprobleem in Windows. Dat had ik vaker gehoord. Wat echter tot de verbeelding sprak, was dat de oorsprong van de fout in 1984 lag, niet in een stuk software, maar in een papieren standaard, om precies te zijn in de abstracte taal waarmee enkele communicatieprotocollen (zoals e-mail) gedefinieerd worden. Die fout was al dik twee jaar eerder ontdekt en had ook programmeurs van Linux en Apple al de nodige hoofdbrekens bezorgd. Alle software die op de standaard gebaseerd is, moet aangepast worden om de fout te ondervangen, zodat we weer veilig kunnen mailen en surfen.

Nou kan ik het natuurlijk niet controleren, maar ik ben er vrij zeker van dat die fout nooit is doorgedrongen tot Katka’s mailmachine. Wie daarop iets gedaan wilde krijgen, moest woekeren met bytes en cpu-cycles. Dan ging je dus niet een papieren standaard digitaliseren, een interpreter schrijven om het ding in software om te zetten en daar dan weer eens je mailprogramma op baseren. Dan schreef je een mailprogramma, met zo min mogelijk fratsen.

Waar is het mis gegaan? Al voor mijn tijd in Praag, vrees ik, toen een hype mij definitief deed realiseren dat mijn toekomst niet in de software lag. Ik had voor de vakgroep de kern van een simulatiesysteem geschreven, met een razendsnelle generator van randomgetallen volgens elke statische verdeling die je maar wilde. De interface was simpel: je kon een paar procedures aanroepen en dat was het dan. De docent was tevreden met het resultaat, op één dingetje na. Of ik het programma even wilde herschrijven volgens het zojuist populair geworden principe van object georiënteerd programmeren.

Ik wilde een cijfer, dus ik gehoorzaamde. Met tegenzin, want het programma werd er langzamer door en de interface ingewikkelder. Maar, zoals de docent niet naliet te benadrukken, wel conceptueel zuiverder. Het totale simulatiesysteem zou een organisch geheel worden, met in software vastgelegde dwarsverbanden op alle plekken waar die in theorie bestonden, in plaats van een losse verzameling programma’s die elkaar voor bepaalde klussen via een minimale interface aanriepen. Nooit wat geworden met dat systeem.

Al die dwarsverbanden verhogen de complexiteit van een computersysteem en daarmee de faalkans. Conceptueel fraai, het zal best, maar ook vragen om moeilijkheden. Informatica is vermoedelijk de enige technologie waar onnodig ingewikkeld doen tot standaard is verheven. Met name Microsoft heeft inmiddels zo’n web van zijn software gemaakt dat ik de broncode eigenlijk niet eens wíl zien. Toen precies vijftig jaar geleden de eerste besturingssystemen het licht zagen, klaagden puristen dat de computer nu moest rekenen aan problemen die ook door de programmeur opgelost hadden kunnen worden. Daar zat een kern van waarheid in die de huidige softwaremakers compleet vergeten lijken te zijn.

Microsoft is – zeer lovenswaardig – bezig met het volledig herschrijven van Windows. Als Bill Gates verstandig is, waagt hij een telefoontje naar Praag om te vragen of ze dat Russische apparaat nog hebben staan, of anders een van die eerste pc’s. Daar zou Windows in principe op moeten kunnen draaien. Bill, denk nog eens terug aan die uitspraak die je nooit gedaan hebt, maar die je al wel jaren achtervolgt, dat 640k genoeg zou moeten zijn. Probeer het. Je kunt het.

Eerder verschenen in De Ingenieur nr 4, 2004.