donderdag 15 november 2012

Professor Barabas

In 1988 kreeg ik les in 'computer techniek' van een docent die me deed denken aan professor Barabas. Klein, kaal hoofd, wit baardje.  Op een dag ging hij voor de groep staan, vouwde zijn handen met gestrekte wijsvingers  die hij tegen zijn kin legde.  Er stond overduidelijk iets bijzonders te gebeuren. Iedereen was muisstil.

"Ik ga jullie iets vertellen," zei hij, "over een ontwikkeling in de computerwereld." Het was de tijd waarin we op de eerste PC XT's ons practicum deden, en voor dit specifieke vak nog op een Apple II. "Computers," zo begon hij, "worden steeds sneller." De Apple was nog 8 bit, en de XT was al 16 bit.  "Bovendien zit er steeds meer geheugen in," vervolgde hij. Maar hoewel die ontwikkeling erg positief was bleek er toch een klein probleem: "de software wordt echter evenredig trager, dus we schieten er weinig mee op."

Professor Barabas, ik ben zijn echte naam vergeten, was een profeet!  In 1988 zag hij al wat tot op vandaag de dag een trend zou worden.  Ik zit dit te typen op een Core i7 op 2,6 GHz met 16 GB geheugen.  Naar schatting 2 tot 3 ordes van grootte sneller dan de 6502 uit de Apple II.  Maar werkt deze nieuwe computer nu 100 tot 1000 keer zo snel?

In die tijd (sprak opa; jemig zeg ik dat?) kon je in je spread sheet (Multiplan of Lotus) aanzetten dat je alle cellen direct wilde laten bijwerken als je er één wijzigde.  Dat ging meestal goed, behalve als je serieuze spread sheets kreeg.  Vandaag de dag staat dat altijd aan, en hoef ik het eigenlijk nooit meer uit te zetten.

De tekstverwerker die ik gebruik, een edit-box in een browser, is af en toe wat traag, vooral wanneer mijn blog wat langer dan een paar pagina's. Dat is niet 1000 keer zo snel, maar langzamer, want ik heb op een Apple II nooit last gehad van een keyboard wat mij niet bij kon houden.

En als je een programma start?  Openen van een spread sheet op een Apple II of een PC XT koste echt wel tijd, in die zin dat je er op moest wachten, soms wel tientallen seconden.  Maar wat gebeurt er als ik een spreadsheet attachment van een e-mail open?  Als Google dat voor me doet... zit ik te wachten.  Als ik de file lokaal open... zit ik te wachten.  Je zou verwachten dat zoiets in 0,1 seconde klaar is.

Het verbaast me nu ik er over nadenk dat we 25 jaar geleden konden rekenen en tekstverwerken, en dat we dat nu nog steeds doen zonder dat nu veel sneller is geworden.  Iedereen kent wel de verhalen dat je bij elke Windows release een nieuwe PC moest kopen om nog hetzelfde te kunnen doen.

Hoe komt dat?

Ik kan een paar oorzaken aanwijzen:

1. Er worden steeds meer generieke frameworks gebruikt. Voor één simpele functie kan zomaar een library worden meegenomen die 100'en MB groot is. En alles wordt over-generiek.

2. Programmeurs hebben steeds minder kennis over wat er precies gebeurt in frameworks en (systeem-) libraries.  Dit is ook een klacht van CEO's van grote softwarehuizen.  Er zijn steeds minder programmeurs die nog het overzicht hebben over alle verschillende lagen.

3. We zijn slordig geworden. Een extra function call, een indirectie, een extra vertaalslag, een database meer of minder, en extra check, we merken het allemaal niet meer, zo snel zijn computers geworden. Maar als je het allemaal bij elkaar optelt merk je het wel degelijk.

4. Commerciële belangen laten ons snellere computer kopen (of snellere TV's, telefoons etc).


In 2012 komt er nog een verdieping bij.  Ik lees verhalen over het opschalen van software de daarvoor eerst 10 keer minder efficient wordt.  Dus je heb eerst 10 keer meer computers nodig, voordat je er 11 van kan maken, of 20, of 100.  Maar het werkt dus wel 10 maal minder efficiënt.


Het energieverbruik is nu de belangrijkste kostenpost van data centers. Dat kan alleen maar veranderen als computer, en vooral computerprogramma's efficiënter worden.  En dat kan!  Er valt veel te winnen.  Lees dit verhaal maar eens, over 6 miljoen transacties op één computer: de LMAX architecture.

Geen opmerkingen:

Een reactie posten