Edsger W. Dijkstra 1930 - 2002

15 augustus 2002
Edsger Dijkstra is dood. De legendevorming kan beginnen. Stof genoeg. Stel je voor: de misschien wel grootste computerwetenschapper van de twintigste eeuw schreef zijn artikelen niet met Word XP maar met een vulpen. Er stond zelfs geen pc in zijn werkkamer. Of hij ooit een muis heeft aangeraakt valt te betwijfelen. Om studenten het uitproberend programmeren af te leren, liet hij ze hun opgaven uitwerken in een zelfbedachte programmeertaal, waarvoor geen compiler bestaat.
Een gemakkelijke man is Dijkstra nooit geweest. Ofschoon hij veel te beschaafd was om zoiets recht voor z’n raap te zeggen, scheen hij bij elke ontmoeting te denken: ‘De wereld is vol broddelaars en zolang het tegendeel niet is gebleken, houd ik u voor één van hen.’
Dijkstra had een hartgrondige hekel aan broddelaars. Misschien niet eens omdat ze broddelen, maar vooral omdat ze het bleven doen ook nadat hen op exacte wijze was duidelijk gemaakt wat in software-engineering het cruciale verschil uitmaakt tussen broddelwerk en programmeren, namelijk: wiskundige abstractie. Wie een programmacode wil maken moet niet opschrijven wat hij denkt dat de computer stap voor stap, dikwijls heen, en veel te vaak ook weer terug of juist met een enorme sprong weer vooruit, moet doen. Zo’n aanpak leidt tot programma’s die de gebruiker en de systeembeheerder vroeg of laat voor verrassingen stellen.
Als alternatief voor de nog steeds alom gebruikelijke ‘schrijf-maar-op-en-kijk-wat-het-doet’-werkwijze in software engineering, stelt Dijkstra voor iedere programmacode te ontwikkelen als uitkomst van het correctheidsbewijs van een gegeven relatie tussen input en output van het beoogde systeem.
In de IT geldt als in geen andere sector het adagium ‘we hebben geen tijd om het goed te doen, dus doen we het straks wel over’, en correctheidsbewijzen schudt zelfs een door Dijkstra opgeleide programmeur niet zo maar uit z’n mouw. En zo hebben de wetten van de economie met onverbiddelijke wreedheid bepaald dat Dijkstra tot op de dag van zijn overlijden zijn eigen gelijk heeft moeten aanstaren in de vorm van een niet aflatende stroom van berichten over foute software en mislukkende automatiseringsprojecten. Als toppunt van ironie is het zoeken naar fouten in software binnen de industrie zelfs tot een apart software-engineeringspecialisme verheven, waaraan naar schatting evenveel geld wordt besteed als aan het programmeren zelf. Als Dijkstra deze apocalyptische kapitaalvernietiging – want wat is het anders ? – had voorspeld, zou iedereen het voor één van zijn befaamde grappen hebben gehouden.
Gelijk hebben is niet makkelijk. Vooral als dat gelijk wel wordt erkend, maar even zo hard genegeerd. Zijn artikel ‘Go-to considered harmfull’ is één van de meest geciteerde publicaties in het vakgebied van de Computer Science. ‘Gestructureerd programmeren’ is min of meer standaard geworden, maar voor het overige waren de praktische consequenties van Dijkstra’s inzichten voor de commerciële vakgenoten en ook voor veel wetenschappelijke collega’s domweg te ingrijpend.
Slechts een selecte kring volgde Dijkstra, maar de meeste vakgenoten gingen door op de manier die ze altijd al praktiseerden. Toen Dijkstra daarop reageerde met het advies aan de overheid om op het werk van zijn vakgenoten vermakelijkheidsbelasting te heffen, was de toon gezet.
Dijkstra aanvaarde een leerstoel in Austin, Texas. Van een wetenschappelijk debat was vanaf dat moment nauwelijks nog sprake, wat natuurlijk ook niet echt nodig is als je gelijk toch al evident is. Gevangen in de kloof die gaapt tussen bewonderaars en afwijzenden.

Dijkstra’s publicaties zijn verzameld op de website van de Universiteit van Texas http://www.cs.utexas.edu/users/EWD/
 
Lees het hele artikel
Je kunt dit artikel lezen nadat je bent ingelogd. Ben je nieuw bij AG Connect, registreer je dan gratis!

Registreren

  • Direct toegang tot AGConnect.nl
  • Dagelijks een AGConnect nieuwsbrief
  • 30 dagen onbeperkte toegang tot AGConnect.nl

Ben je abonnee, maar heb je nog geen account? Laat de klantenservice je terugbellen!