0209.16 Terug
Vooruit 0209.18

Col: 0209.17

Date: Thu, 05 Sep 2002 16:28:17 +0200
From: Marc van Oostendorp <marc.van.oostendorp@meertens.knaw.nl>
Subject: Col: 0209.17: NederNed 45: Je de rest van je leven niet vervelen

Nederned 45: Je de rest van je leven niet vervelen

Er zijn wel wat overeenkomsten tussen de vorige maand overleden Edsger W. Dijkstra (1930-2002) en Vincent van Gogh (1853-1890). Ze woonden allebei enige tijd in Nuenen. Ze hadden allebei rood haar en een rood baardje. Ze horen minstens even beroemd te zijn om de handgeschreven notities die ze nalieten als om hun eigenlijke werk.

Edsger Dijkstra was een van de grondleggers van de wetenschappelijke informatica. Voor hem was het programmeren van computers een wiskundige activiteit. Op een bepaald moment werd de informatica een vak dat je ging studeren om verzekerd te zijn van een goede baan. Dijkstra bezag deze trend met argwaan. "Je studeert niet omdat je geld wilt verdienen," vond hij "maar om je de rest van je leven niet te hoeven vervelen."

Dijkstra bezag trouwens meer trends met argwaan. Moderne computers bijvoorbeeld, daar zag hij helemaal niks in. Hij had heel hoge standaards van hoe een computerprogramma in elkaar moet zitten - elegant en doorzichtig geconstrueerd, zodat het met een willekeurige invoer gegarandeerd de correcte uitvoer zou leveren - en vanuit die optiek is een willekeurige pc, vol onlogische, haastig in elkaar gedraaide programma's die het om de haverklap begeven, prutswerk, gemaakt door ingenieurs die al tevreden zijn als het een beetje werkt in plaats van door wiskundige strevers naar de perfectie.

Dijkstra stond dan ook aan de basis van het zogenoemde gestructureerde programmeren. In de jaren vijftig en zestig werden computerprogramma's in zogenoemde machinetaal gemaakt, instructies die bij wijze van spreken heel direct vertelden welk elektron zich waarheen moest begeven. In de jaren zestig kwamen er langzamerhand programmeertalen die het mogelijk maakten het apparaat op een wat hoger niveau van abstractie aan te spreken (de instructies werden dan uiteindelijk natuurlijk in machinetaal vertaald, maar dat gebeurde automatisch). Dijkstra streed ervoor dat dit soort programmeertalen helder, gestructureerd en bewijsbaar werden. De programmeertaal Pascal wordt wel gebruikt als voorbeeld van een taal waarin ideeën zoals die van Dijkstra verwerkt zijn.

Het is veelzeggend dat Dijkstra's bekendste stuk over deze kwestie (en misschien in het algemeen zijn bekendste stuk) een ingezonden brief was aan het tijdschrift Communications of the ACM. "Go To Statement Considered Harmful" heette die brief. Dijkstra pleitte erin tegen een programmeerstijl waarin de hele tijd van hot naar haar werd gesprongen in het computergeheugen (middels een 'go to'-opdracht) en voor een stijl die gebruik maakte van logische constructies als if A do B else do C, while A repeat B, enzovoort. Met die ideeën is het nu ongeveer zo gesteld: elke computerprogrammeur kent ze, en weet dat hij ze moet toepassen, maar elke computerprogrammeur overtreedt die regel ook. Ook moderne programmeertalen hebben nog steeds een equivalent van go to.

Dijkstra publiceerde een redelijk maar niet indrukwekkend aantal boeken, hoofdstukken in boeken en artikelen. Hij werd echter vooral bekend door de reeks EWD's (naar zijn initialen) die hij in de jaren 1962-2002 rondstuurde aan collega's en belangstellenden. Die EWD's waren soms uitgetikt, maar meestal met de hand geschreven en in ieder geval nooit op zo'n foutrijke tekstverwerker in elkaar gezet. Ze gaan over allerlei onderwerpen, uit de wiskunde, uit de informatica en uit het leven. Dijkstra had een bijzondere, droge, een beetje knorrige stijl. Na zijn pensioen in 1999 hebben zijn collega's van de Universiteit van Texas alle EWD's die ze terug konden vinden op een website gezet. De afgelopen weken heb ik ze bijna allemaal ademloos gelezen.

Wat ik nu zou willen, is lid worden van een EWD-club, waarvan de leden elke week bij elkaar komen om dan uit het verzameld werk van Dijkstra te citeren. "If somewhere you read 'in depth', ignore it," zegt iemand dan. En ik antwoord, "The problems of the real world are those that remain when you ignore their known solutions." De man had zelf trouwens een heel goed oor voor citaten; sommige van de beste EWD-citaten komen van zijn kinderen en zijn ouders. EWD 1130 (uit 1992) heet over "The Economy of Doing Mathematics" en gaat over onder andere het belang van elegantie in de wiskunde en de wetenschap. Het eindigt met een citaat van EWD's moeder: "And, remember, when you need more than five lines, you are probably on the wrong track."

Het lezen van die ruim 1700 EWD's is een bijzondere ervaring. Ik heb niet de pretentie dat ik alles begrijp, ik verkeer nu eenmaal niet bepaald in de voorhoede van de wiskundige informatica, maar een heleboel valt ook wel te begrijpen. En doordat een en ander letterlijk de vorm van notities heeft - de handgeschreven aantekeningen zijn ingescand en als pdf's gepubliceerd - komt die een beetje knorrige man grappig dichtbij.

In de taalkunde hebben we zoiets niet, geloof ik. (Al hebben we ook in ons vak onze eigenste Man uit Nuenen, dr. Jan van Bakel, die alweer sinds een paar jaar de interessantste en persoonlijkste website van de Nederlandse taalkunde bijhoudt, vol observaties, persoonlijke kritiek op van alles en nog wat en digitale reprints van oud werk. De stijl lijkt in de verte wel wat op die van Dijkstra.) Dat is jammer, want het bestaan van dit soort mensen is een reclame voor een vak; maar helaas is dit soort mensen zeldzaam.

"I thank everybody in general for everything, and you in particular for your attention." (EWD1298)

Marc van Oostendorp, http://www.vanoostendorp.nl/

--

Jan van Bakel. 2002. Woorden en beelden (website). http://www.telebyte.nl/~janbakel/
Edsger W. Dijkstra. 1968. Go To Statement Considered Harmful. Communications of the ACM, 11.3: 147-148. Elektronische herdruk op http://www.acm.org/classics/oct95/
Edsger. W. Dijkstra. 2002. Homepage, University of Texas. http://www.cs.utexas.edu/users/EWD/


[Dit nummer][NederNed-columns Van Oostendorp]