HOME

Ter afsluiting van de “Inleiding tot de Kunst van het Programmeren

Show original manuscript

Ter afsluiting van de “Inleiding tot de Kunst van het Programmeren”

Ter afsluiting, niet alleen van het seizoen, maar van de hele serie, brengen wij “De gelijkheidstest voor cyclische lijsten”, een nog vrij recente compositie van Yossie Shiloach. De oorspronkelijke compositie is geschreven voor amateur-ensembles en bevat om die reden nauwelijks passages die van executant of toehoorder veel raffinement vereisen, en in zijn oorspronkelijke vorm bevredigt het stuk dan ook niet helemaal. Dat het toch zo snel tot het klassieke repertoire is gaan behoren, danken we dan ook aan de concertbewerking van Wim Feijen en Netty van Gasteren: zij hebben voor Shiloach’s Algorithme gedaan wat Maurice Ravel deed voor de Schilderijententoonstelling van Modest Petrovitch Moussorgski. Ik breng U nu een uitvoering van Shiloach’s Algorithme in de versie van Feijen en van Gasteren, aangevuld met eigen cadenzen.

*            *
*

Zo, dat was dan 17 jaar “Inleiding tot de Kunst van het Programmeren”: 17 bewogen jaren. (Ze bewegen nog steeds, mogen wij wel zeggen.) Een terugblik zij mij vergund.

Hoe veelbewogen die jaren zijn geweest wordt onmiddellijk duidelijk als we naar de naamsveranderingen kijken. Begonnen wij 17 jaar geleden met de Kunst van het programmeren, 8 jaar later hadden wij het over A discipline of programming en nog eens 8 jaar later verkreeg The science of programming burgerrecht. Deze progressie is zelfs voor de leek een onmiskenbaar symptoom dat er in die jaren veel moet zijn gebeurd.

De Kunst van het Programmeren: de naam was geen grapje, hij weerspiegelt heel duidelijk de tijd, waarin hij is ontstaan. Zo verscheen een jaar later Vol.I van het boek van Donald E.Knuth dat de naam The Art of Computer Programming mee zou krijgen. De naamkeuze was ingegeven door een mengsel van bescheidenheid en ambitie.

De bescheidenheid bestond daarin dat we, door over de kunst te praten, aangaven, dat de wetenschappelijke discipline nog niet bestond. (En zelfs 8 jaar later, toen dat allemaal heel anders was komen te liggen, kozen we heel bewust “A Discipline”: men lette op het onbepaalde lidwoord!)

De ambitie bestond daaruit, dat we het vak ten duidelijkste boven het toen vigerende niveau van adhoccery wilden uittrekken. Het gebruik van de term kunst leek die ambitie duidelijk te verwoorden, te meer daar het duidelijk was dat de gewenste ontwikkeling zijn eerste impulsen uit esthetische overwegingen zou moeten krijgen.

Terugblikkend moet ik erkennen de rol van die esthetische overwegingen voorzover ik mij kan herinneren destijds onderschat te hebben. Ik was mij er wel erg van bewust dat het geen zin had een uitgebreid formeel systeem te ontwikkelen en ons de bijbehorende manipulatieve vaardigheden eigen te maken voordat we heel zorgvuldig hadden gekozen, wat we nu eigenlijk wilden formaliseren en op wat voor soort programma’s we eigenlijk wilden afstevenen. We wisten een paar dingen inmiddels: we wisten dat de goto-statement een bron van ellende was, en begrepen zelfs gedeeltelijk waarom; we wisten, dat recursie een schitterend stuk gereedschap kon zijn. Maar het was nog heel duidelijk tasten; vandaar het esthetisch kompas. Even vooruitlopend moge ik illustreren hoezeer nog zes jaar later —en we zijn dan in 1973— de esthetiek richtinggevend was. De generalisatie van de if-then-else-clause naar de alternatieve constructie met de z.g. guarded commands ontstond uit het verlangen om in de uitdrukking voor het maximum van twee getallen de symmetrie tussen die twee getallen niet te verstoren. Op het moment dat ik zag dat mijn manier van symmetriehandhaving de introductie van nondeterminisme impliceerde, heb ik daar in eerste instantie nauwelijks bij stilgestaan: mijn eerste reactie op de introductie van nondeterminisme was van een gelaten “nou, dat moet dan blijkbaar”. Hoe groot de toen achteloos genomen stap was geweest heb ik me pas veel later gerealiseerd toen de eerder genoemde Knuth hem karakteriseerde als “a giant leap”.

Wat ik, door esthetische overwegingen primair te apprecieren als provisorisch richtsnoer, toen onderschat heb is hoe elegance een steeds centralere plaats in onze overwegingen zou gaan innemen naarmate de tijd voortschreed. Later heb ik in alle toonaarden bezongen dat in computing science wiskundige elegance niet beschouwd moest worden als luxe, maar als harde noodzaak. In 1967 zag ik dat beslist nog niet met de helderheid waarmee we er nu van zijn doordrongen.

Helaas was de gekozen benaming niet zo duidelijk als we gehoopt hadden: behalve tot schampere opmerkingen heeft hij, vrees ik, meegewerkt aan het misverstand dat het vak niet te leren zou zijn, dat het tentamen toch een loterij was en dat het daarom weinig zin had je er op voor te bereiden. Het behoeft geen betoog dat het tentamen voor studenten, die deze onjuiste conclusies trokken en daar naar handelden, inderdaad in een loterij ontaardde, maar dan wel een loterij met louter nieten. Het tentamen is hierdoor wel in opspraak gekomen, maar iedere keer dat we het controleerden bleken de cijfers voor “de kunst” zo schitterend te correleren met andere erkend selectieve tentamina, dat wij ons geen zorgen hebben gemaakt en het verwijt, dat het tentamen voor “de kunst” een intelligentietest was,als compliment naast ons hebben neergelegd. En dat was dan waarschijnlijk wat naief; volledig terecht, maar wel wat naief. Het gaat mij evenwel wat ver, de misverstanden louter aan de gekozen benaming te wijten. We waren voor Nederland waarschijnlijk ook wat vroeg: het was de tijd dat je als vooraanstaand Nederlands wiskundige zonder gezichtsverlies nog met trots kon verklaren “natuurlijk niets van computers te weten”.

Internationaal gezien waren we niet te vroeg. In 1968 kwam op de beroemde NATO Conferentie te Garmisch-Partenkirchen de “software crisis” in de openbaarheid. Datzelfde jaar trad een substantieel gedeelte van de IFIP Working Group 2.1 uit. Voor de uittredende leden was het politieke breekpunt de IFIP-bekrachtiging van ALGOL 68, een bekrachtiging, die zij misplaatst vonden. Van meer belang is de kern van hun motivering, nl. dat zij niet zagen hoe ALGOL 68 bijdroeg tot het moeilijkste aspect van de taak van de programmeur, nl. het scheppen van vertrouwen in de correctheid van zijn programma’s. Slechts een jaar later, in 1969, —en hier heeft de visie van de toenmalige president van IFIP, Heinz Zemanek, waarschijnlijk de doorslaggevende rol gespeeld— werd een nieuwe IFIP Working Group opgericht: WG 2.3, met als charter “Programming Methodology”. Inmiddels was “Notes on Structured Programming” via het informele circuit in omloop en dankzij de juist populair wordende copieermachines spoedig wijdverbreid.

[Geheel terzijde. Op het ogenblik vervloeken wij de copieermachines als de apparatuur, zonder welke de bestuurlijke verlamming van de universitaire democratisering zich niet zou hebben kunnen voltrekken, en het is niet misplaatst Xerox Corporation zijn rechtmatig aandeel toe te kennen in de wereldwijde verloedering van het academisch bedrijf. Tegelijkertijd dienen wij evenwel te erkennen dat de copieermachine een enorme rol speelt in de wetenschapsontwikkeling: een goed idee blijft niet meer geheim, en dat is een onschatbaar winstpunt.]

In het begin van de 70-er jaren kreeg het college zijn eerste dictaat: “An Introduction to the Art of Programming”. Ik kom nog geregeld verwijzingen daarnaar tegen, maar kan niet achterhalen of deze mogelijk zijn geworden door het informele circuit, dan wel door het feit dat The Indian Computer Society het in een waarschijnlijk gigantische oplage heeft herdrukt en verspreid. Het college is zijn werkelijke invloed waarschijnlijk pas gaan doen gelden in 1973 toen het Niklaus Wirth uit Zürich tot de publicatie van zijn Systematic Programming had geinspireerd. In 1976 verscheen A Discipline of Programming, 5 jaar later verscheen van David Gries het duidelijk daardoor geinspireerde The Science of Programming en was de oprichting van het tijdschrift van Elsevier The Science of Computer Programming een feit.

Inmiddels had collega Martin Rem, toen hij van CalTech terugkwam, het college overgenomen. Onder zijn zorgvuldige begeleiding is de veelbelovende puber tot volwassenheid gekomen. Let wel: volwassen betekent niet klaar, het betekent volwassen. Het college had zijn tijd van wonderkind gehad, de ernst des levens diende zich aan. Formele technieken zijn, zowel bij probleemanalyse als bij de constructie van oplossingen, een steeds grotere rol gaan spelen. De formele manipulaties zijn gestroomlijnd en gesystematiseerd en het vocabulaire dat in problemen herkenbare patronen beschrijft heeft zich ontwikkeld. In de jaren dat Martin Rem het college ontwikkelde, groeide dankzij mensen als Wim Feijen de instructie zonder tot routine te vervallen tot een solide traditie.

Kortom: een bloeiende activiteit in de kracht van zijn leven, een activiteit waarin het ideaal van Von Humboldt, nl. de verstrengeling van onderwijs en wetenschappelijke ontwikkeling, volledig tot zijn recht is gekomen. Dankzij wat wij in ons optimisme nog 2-fasen structuur noemen, hoewel het ernstig te bezien valt of die 2de fase ooit gerealiseerd kan worden, houdt dit college nu op te bestaan. Vrolijk stemt dit niet. Maar we kunnen proberen ons te troosten en wat lichtpuntjes te ontwaren, (Dat is nl, nog niet wettelijk verboden.)

We kunnen in elk geval dankbaar terugzien op de afgelopen 17 jaar, dankbaar dat het college tot wasdom heeft kunnen komen, dankbaar jegens alle instructeurs die tot de perfectie en verbreiding hebben bijgedragen, en dankbaar jegens al die studenten en anderen, die het college niet als spons, maar als wetsteen hebben bijgewoond.

We mogen ook dankbaar zijn voor wat we er zelf van hebben geleerd. Het heeft ons geleerd dat zoiets als programming methodology inderdaad bestaat; het heeft ons ook het bewijs geleverd dat dit onderwerp doceerbaar is —wat niet betekent dat iedereen het leren kan, maar dat is met elk doceerbaar onderwerp zo— . Het heeft ook onze appreciatie van formele technieken verhoogd: we hebben uit ervaring geleerd dat het wijdverbreide bijgeloof dat formele behandelingen noodzakelijkerwijze vervelend en langdradig zouden zijn om het voorzichtig uit te drukken niet gerechtvaardig is. Als onze ervaringen overdraagbaar zijn tot de wiskunde in het algemeen —en ik zie geen redenen waarom dat niet het geval zou zijn— is daarmee een methodoligisch vergezicht getoond om van te likkebaarden. De eigenlijk toch verrassende snelheid waarmee de invloed van dit college zich over de aardbodem heeft voortgeplant is de zoveelste rechtvaardiging voor de verwachting dat in de komende decennia computing science een zeker zo diepgaande invloed op de wiskundebeoefening in het algemeen zal hebben, als in het verleden de physica op de analyse heeft gehad. En dat is een opwindende gedachte!

En als laatste troost voor hen die het jammer vinden dat dit college in de kracht van zijn leven ophoudt te bestaan een herinnering aan het welbekende advies het feest te verlaten wanneer het nog leuk is.

Namens alle betrokkenen dank ik U voor Uw aandacht.

 

 

Plataanstraat 5
5671 AL NUENEN
The Netherlands
7 december 1983
prof.dr.Edsger W.Dijkstra
Burroughs Research Fellow