De snelheid van verbeteringen in de computerwereld is ongekend. Om een voorbeeld te geven: als auto's ook ieder jaar volgens Moore's Law zouden worden verbeterd, zouden ze harder gaan dan een straaljager, opgevouwen in uw broekzak passen en bovendien goedkoper zijn dan een tweedehands fiets. Vandaag de dag is Moore's Law een soort cliché geworden, waarmee wordt aangegeven dat de hardware capaciteit ieder jaar drastisch toeneemt. Hardware gaat dus hard - maar software gaat feitelijk net zo hard. Eigenlijk is de stormachtige ontwikkeling van software de reden dat de verbeteringen van hardware zo snel gaan. Hardware moest wel enorm snel ontwikkeld worden, omdat software zo toenam in complexiteit.

De complexiteit van software

In 1975 had Microsofts eerste product, Basic, ongeveer vierduizend regels code. Dat is nog te overzien. De eerste versie van Microsoft Word had 27000 regels code, terwijl in 1995 dit aantal al was toegenomen tot zo'n twee miljoen. Zo gaat het maar door. Windows XP heeft volgens Microsoft inmiddels meer dan honderd miljoen regels code. Softwareontwikkeling verloopt dus ook volgens een variant op Moore's Law. Er is echter wel een beperking die hardware niet heeft: ons brein. Het lijkt er op dat zeer binnenkort hardhandig wordt kennisgemaakt met dit plafond. Volgens geruchten is men bij Microsoft al redelijk de weg kwijt als het gaat om onderhoud van bestaande software - het aantal regels code is domweg te groot om door mensen te worden bijgehouden. De prestaties van hardware kunnen zonder problemen blijven worden verhoogd met de huidige snelheid. Software programma's kunnen niet zo makkelijk worden opgeschaald - een verhoging van het aantal regels code van bijvoorbeeld honderdduizend naar een miljard is simpelweg niet mogelijk. Met de huidige manier van programmeren kan een programmeur, of een team van programmeurs, maar een beperkt aantal regels onderhouden. Meer mensen inzetten betekent in dit geval niet automatisch een evenredige toename van het aantal regels dat te onderhouden valt. Een kaartenhuis bouwen met vijf mensen gaat best goed, maar met duizend mensen kom je niet veel verder. Kleine onzorgvuldigheden gooien dan steeds roet in het eten. De enorme hoeveelheden broncode beginnen steeds meer op een kaartenhuis te lijken. De dag dat de motor van Windows ten onder gaat aan spaghetticode komt steeds dichterbij.

Licht

Gelukkig zijn er al mensen die nadenken over een oplossing die een ramp moet voorkomen. Vrijwel alle betrokkenen zijn het er over eens dat de manier waarop software wordt gemaakt aan een grondige vernieuwing toe is. Computers moeten meer op mensen gaan lijken. Taal is een goede metafoor. Computers zijn slechte praters. Dat komt door ons. Onze huidige manier van programmeren leidt er namelijk toe dat een computer alle mogelijke woordcombinaties en zinsconstructies moet kennen om met ons te kunnen communiceren. Zelf doen we dat ook niet. Als kinderen leren te praten, ontwikkelen ze spelenderwijs een soort taalmodel waarin nieuwe woorden en zinnen als vanzelf een plaats vinden. We moeten nu software gaan maken die op dezelfde manier leert van nieuwe uitdagingen. Alleen dan is er over tien jaar nog een Windows, zonder spaghetti. Bron: Techworld