Interview | Winnaar Lifetime Achievement Award 2023
Paul Klint (1948) kreeg eind vorig jaar tijdens het Computable-prijzengala de Lifetime Achievement Award uitgereikt. De wetenschapper (Mathematisch Centrum, CWI, SIG, UvA, AcICT) is sinds begin jaren zeventig bezig met software. Meer precies, met het beter maken van software. ‘Ik heb een zendingsdrang: ik vind het belangrijk dat software in het algemeen, en dus ook overheidssoftware, zo goed mogelijk wordt.’ Een interview met de laureaat over ponsbanden, software-evolutie, het belang van onderhoud, het gebruik van je gezond verstand en elke dag programmeren.
In zijn kamer op het Centrum Wiskunde & Informatica (CWI) op het Science Park in Amsterdam staat een Lego-schaalmodel van de Turing-machine. Het model, gemaakt door twee CWI-wetenschappers, laat de werking van de computer zien aan de hand van de ideeën van de Britse wiskundige Alan Turing uit 1936. Het is in feite een wiskundig model dat de fundamentele principes van een computer op een eenvoudige manier inzichtelijk maakt. ‘Op YouTube staat er een leuk filmpje over’, zegt Paul Klint, sinds 2012 research fellow bij het CWI en emeritus hoogleraar software engineering aan de Universiteit van Amsterdam. ‘Die Lego-versie is een sprekend voorbeeld van hoe je de communicatie over iets theoretisch zo zichtbaar mogelijk kan maken. Daar houd ik van. Ik ben pragmatisch ingesteld. Ik vind theorie belangrijk en het is goed om over de fundamenten na te denken, maar… het moet wel werken!’
Data marchanderen
Eigenlijk wil een jonge Paul Klint natuurkundige worden, – ‘toen ik twaalf jaar was wist ik al dat ik die studie wilde doen’ -, maar na het behalen van zijn kandidaats aan de Universiteit van Amsterdam vindt hij zijn Waterloo in het practicum. ‘Daar stonden in het lab allemaal versleten apparaten. Dan moest ik de golflengte van een gas bepalen of een of andere weerstand en kwamen er onbetrouwbare waarden uit. Vervolgens moest ik met de data marchanderen. Dat vond ik niet kunnen. En toen dacht ik, ja, wat kan ik doen? De beste theoretisch natuurkundige worden? Lastig. Of leraar? Dat trok me ook niet. Dus ben ik naar de wiskunde geswitcht.’
Tijdens deze studie komt hij rond 1970 met computers en programmeren in aanraking en wordt de wiskundige in spe door deze opkomende technologie gegrepen. ‘Kijk, bij ieder apparaat dat je bouwt, ben je aan allerlei fysieke beperkingen onderhevig. Terwijl, als je programmeert, zit het in je hoofd en je vertaalt dat in een programma. Dus, de afstand tussen wat je denkt en wat je maakt, is daar zo klein mogelijk. Natuurlijk, later is het allemaal complexer en veel minder flexibel geworden, maar ik vond het toen fascinerend.’
Mathematisch Centrum en CWI
Na zijn doctoraal wiskunde gaat hij aan de slag bij het Mathematisch Centrum (vanaf 1983 het CWI) in Amsterdam, eerst als assistent in 1972 en een jaar later als onderzoeker. Het wiskundig instituut beschikt over eigen (te huren) computers én een klantenkring. Klint geeft klanten regelmatig programma-adviezen, over de kwaliteit van hun code. De verwerking ervan gaat eerst nog met ponsbanden en naderhand ponskaarten. ‘Copy/paste heb ik daar letterlijk fysiek meegemaakt. Dan zat er een fout in de code en dan knipte je de ponsband door om er vervolgens een nieuw stukje tape met de juiste code tussen te plakken.’
Het is de tijd van Elektrologica, de eerste getransistoriseerde computers (én van Nederlandse makelij) en directeur Aad van Wijngaarden, mede-ontwikkelaar van de programmeertaal Algol-68 waarvan de grammatica in een befaamd rapport is gedefinieerd. ‘Een volkomen barok rapport waaruit Van Wijngaarden talloze formele regels kon declameren. Een bijzondere man. Van hem heb ik als student nog college gehad. Hij kon heel goed uitleggen. Dan dacht je dat je alles snapte. En dan ging je naar huis om het zelf te doen en bleken zaken toch wat ingewikkelder te liggen. Zo ben ik ook college gaan geven: de materie zo begrijpelijk mogelijk uitleggen en laat die ‘gory details’ maar even achterwege. Na zijn dood in 1987 heb ik zijn kinderen gebeld en gevraagd of ik zijn toga voortaan mocht gebruiken. Dat mocht en die toga draag ik nog regelmatig, bij promoties bijvoorbeeld.’
Bij het CWI geeft Klint jarenlang leiding aan de onderzoeksgroep Software Analysis and Transformation en is hij hoofd van de afdeling Software Engineering. Het doorgronden van bestaande software en het ontwikkelen van tools om software systematisch te verbeteren staan hoog op de agenda. Vaak betreft het hulpmiddelen om programmeertalen en programmeergereedschap te ontwikkelen. Zo is de CWI-wetenschapper nog steeds bezig met het project Rascal, een meta-programmeertaal die programmeurs helpt bij het analyseren, transformeren en genereren van broncode. Onderzoekers op het gebied van programmeertalen en software engineering gebruiken het al enige jaren en Rascal wordt onderwezen op universiteiten in Nederland en daarbuiten. Ook liepen en lopen er projecten bij onder andere ING, Philips, ASML en TNO.
Software-evolutie
Klint waarschuwt nog voor de eeuwwisseling de ict-sector al voor wat hij de ‘software-evolutie’ noemt. Hij geeft er onder andere college over aan de Universiteit van Amsterdam. ‘De hoeveelheid software op onze planeet is de afgelopen decennia explosief toegenomen en deze gigantische berg aan code blijft alsmaar groeien. Als softwarespecialisten krijgen we steeds vaker te maken met het integreren van bestaande software-oplossingen en onderhouden van legacy-systemen. Het vak software-evolutie zoekt naar oplossingen om deze groeiende berg onder controle te krijgen en te behouden’, schrijft Computable in een artikel uit 2011 over een hoorcollege dat de software-vorser over deze problematiek geeft.
Klint: ‘Nu is iedereen ervan doordrongen dat software-evolutie een belangrijk onderwerp is, maar toentertijd werd ik min of meer uitgelachen. Het was ‘gewoon’ een kwestie van mooie, correct bewezen software maken, aldus de consensus. Terwijl de realiteit natuurlijk anders is.’ Goedlopende softwaresystemen, zoals ooit bij de overheid, zijn te rigide geworden door het vele benodigde onderhoud, stelt hij. Een bekend voorbeeld is de Belastingdienst. Die is in een vroeg stadium goed gaan automatiseren, alleen het up-to-date houden en renoveren van die systemen is te lang onderschat. ‘Mijn stelling is: het wordt op brede schaal nog steeds onderschat.’ Klint wijst op de rijksbegroting. Daar staat niets in over software-onderhoud, omdat de grootte ervan onbekend is. ‘Ik ben al een tijd bezig om te lobbyen om zo’n post op de begroting te krijgen, maar daarvoor moet de Comptabiliteitswet, die beschrijft welke posten op de rijksbegroting staan, worden veranderd. Daar bestaat weinig animo voor.’
Unix landt in Europa
In 1969 ontwierpen Ken Thompson en Dennis Ritchie, werkzaam bij Bell Labs, de onderzoeksafdeling van de Amerikaanse telecomgigant AT&T, (mede) het Unix-besturingssysteem. Om te laten zien wat het besturingssysteem waard was werd het in 1971 overgezet naar de PDP-11, een serie 16-bit-minicomputers van DEC (Digital Equipment Corporation). Voor Paul Klint begint het een paar jaar later met een artikel in de Communication of the ACM (juli 1974), het tijdschrift over computerwetenschap. Daarin maakt genoemd tweetal gewag van het door hen bedachte Unix-systeem. Daar veert Klint destijds van op: ‘Want ik zat hier enorm te klooien met RSX11, een besturingssysteem van DEC op een PDP-11. Ik las dat artikel en dacht: dat moet ik hebben. Dus een brief naar AT&T met een aanvraag om een kopie. Maanden – ik geloof negen – natuurlijk niets gehoord. En toen opeens een brief met daarin de tape. Oké…’
Klint begint te begrijpen dat het experiment waaraan hij en een aantal collega’s begint van grote betekenis is. Het was zoveel beter dan hij gewend was, blikt hij terug. Het is dan ook dat de onderzoeker zich realiseert dat hij niet alleen betrokken is bij de introductie van Unix in Nederland, maar in héél Europa. ‘Ik was iedereen voor. Toen wij als een soort Unix-gebruikersgroep ermee begonnen, zag je opeens op allerlei andere plekken in Europa beweging. Ja, daar werden ze ook wakker.’ Niet dat het zo eenvoudig was. Met de komst van Unix moest Klint wel weer een nieuwe taal leren. ‘Kan ik dat zo zeggen? Nou, met Unix kwam C. Dat was wel weer een nieuwe taal en dat was wel leuk.’
Dan valt weer het woord ‘evolutie’. Volgens Klint zaten in die eerste versies van Unix allerlei tools die oorspronkelijk in Assembler geschreven waren. Of meer precies, die handmatig naar C vertaald waren. ‘Eigenlijk een soort C dat je nooit met de hand zou schrijven. Daar zag je de assembly language nog doorheen schijnen, door die C-code. Later is dat gewoon meer typisch C-code geworden. Een echt evolutieproces. En dat is dus het Unix-verhaal.’
Vragen om moeilijkheden
Klint schat in dat gemiddeld 15 procent van de kosten van een it-systeem opgaat aan onderhoud. De eerste jaren wat minder maar na een paar jaar begint dat percentage te stijgen. ‘Nou, dat staat op geen enkele begroting. Er is wel budget vrijgemaakt om een systeem te bouwen, maar geen budget om het vanaf dag één te onderhouden. Dat is vragen om moeilijkheden. Zeker als je een lopend systeem wilt vervangen terwijl de ‘winkel’ open moet blijven. Dan zit je met allerlei keuzes en structuren die gedicteerd worden door dat eerste systeem.’
Het bedrijfsleven kampt ook met software-evolutieproblemen maar daar worden daadkrachtigere beslissingen genomen, ervaart Klint. ‘Er wordt daar beter gestuurd. In onze Grondwet staat dat ieder ministerie over zijn eigen middelen gaat én over zijn eigen voorzieningen. Dus elk departement mag zijn ict inrichten met soms ook meerdere ict-afdelingen. Dat is geen werkbare situatie.’ Neem een voorbeeld aan het Deense model, tipt hij, waar een centrale overheidsinstantie de protocollen en normen definieert waaraan ict-componenten moeten voldoen. Dan krijg je veel meer grip op wat er gebeurt, is er meer hergebruik en dalen de kosten.
AcICT
Klint zwaait begin 2023 af als lid van het Adviescollege ICT-toetsing (AcICT), na maximaal twee termijnen van vier jaar. In de acht jaar daarvoor brengt hij samen met de andere leden talloze adviesrapporten uit over ict-projecten bij het Rijk. Met als achterliggend doel: bijdragen aan de verbetering van de overheidsautomatisering. Heeft hij het idee dat die adviezen geholpen hebben? ‘Laat ik het zo zeggen, ministeries nemen het door de jaren heen wel steeds serieuzer. Ik merkte een toenemende bereidheid om te luisteren.’
Alleen, nog steeds worden vaak dezelfde fouten gemaakt, terwijl er inmiddels AcICT-handleidingen bestaan én zelfs commerciële trainingen om it-projecten te starten. ‘Het gebeurt eigenlijk zelden dat een project fout loopt op technische aspecten’, benadrukt de laureaat. ‘Eerder ligt het aan het projectmanagement, het ontbreken van een businesscase of een beleidsvoornemen waarbij met het oog op de haalbaarheid ict veel te laat is meegenomen.’
Achterkant sigarendoosje
Klint doet daarbij een appèl op het gezond verstand. ‘Ik zie zo vaak ict-projecten voorbijkomen zonder duidelijke opzet en einddoel, waarbij je – als je je gezond verstand gebruikt – al kan vaststellen dat het fout gaat lopen.’ Hij noemt als voorbeeld een advies van AcICT over een systeem voor een tolpoortheffing bij een tunnel. Logische gedachte nummer één: zouden er meer tolpoorten in de wereld zijn en zou daar dan al software voor bestaan? ‘Die gedachte kwam in dit project niet op. Daar was men al vijf jaar bezig met bouwen. Terwijl op de achterkant van een sigarendoosje zo uit te rekenen viel dat het bedrag dat de tolpoort zou moeten opbrengen, bij lange na niet de ict-uitgaven zou dekken. Dan kun je er beter mee stoppen.’
De CWI-onderzoeker erkent dat de problematiek ook niet eenvoudig op te lossen is. Het valt hem wel op dat vaak dezelfde fouten worden gemaakt. Bijvoorbeeld, een Cobol-systeem automatisch naar Java willen vertalen. Dan zit je daarna met Java-code die geen programmeur met een lange stok wil aanraken. Want dan krijg je code die een mens nooit zal schrijven. ‘Daar ben je dus niets mee opgeschoten en er zijn een hoop euro’s verstookt.’ Wat daarbij niet helpt, is de hoge omloopsnelheid van projectmanagers en andere medewerkers op sleutelposities. Die zijn doorgaans na een paar jaar alweer weg, na een volgende carrièrestap, terwijl de ict-projecten doorlopen. Dan wordt er weer een opvolger of ad-interimmer benoemd. Dat maakt de kans op fouten groter, aldus Klint.
Lekker programmeren
Wat moet dan de aanpak zijn? Daar is in zijn ogen geen panacee voor. Maar benadrukt Klint, het is een illusie dat je in één klap een bestaand systeem door een ander systeem kan vervangen. Want al die projecten mislukken. Het probleem is dat veel van de kennis van die oudere systemen in de hoofden van mensen zit. Die worden ouder en gaan met pensioen, en dan verdwijnt die kennis.
Dat maakt de essentie van software-analyse steeds belangrijker, om die kennis die verstopt zit in de code er uit te trekken voordat een expert vertrekt. Pas dan kun je stapsgewijs in behapbare brokken software vervangen of, als het kan, aanpassen zodat die code in zijn oude vorm nog bruikbaar blijft. ‘Vergeet ook niet de voortgang te monitoren en risico’s te meten’, meldt hij. ‘Je zult verbaasd zijn hoe vaak dit met de mond wordt beleden maar in de praktijk niet wordt gedaan.’
Herhaling
Wordt hij er niet moedeloos van, van die vele herhalingen van zetten? ‘Tuurlijk, soms is het frustrerend als ik de trage voortgang zie. Maar dan ga ik, ter compensatie, de volgende dag lekker programmeren. Bovendien heb ik ‘last’ van zendingsdrang om software te verbeteren. Niet voor niets heb ik de afgelopen acht jaar veel tijd aan AcICT gespendeerd. En stond ik in 2008 aan de wieg van de Software Improvement Group, een spin-off van het CWI om software beter te maken.’
Stilzitten is zelfs vandaag de dag niets voor Paul Klint. Zo is hij is betrokken bij twee startups: Swat.engineering en SolidSands. De eerste is druk met het ontwikkelen van domein-specifieke talen (de eerder genoemde meta-programmeertaal Rascal is een van de ‘geheime’ wapens); de tweede met de validatie van C- en C++-compilers. ‘Mijn drive is betere software. Dat vertaalt zich ook in het onderwijzen van studenten, onderzoek doen, het opzetten van bedrijfsactiviteiten en advieswerk voor de overheid. Juist voor de overheid.’
Informatica-stimuleringsplan
Paul Klint is sinds jaar en dag (vanaf 1972!) werkzaam voor het CWI. Maar dat is niet áltijd zo geweest. Terugkijkend op zijn carrière noemt hij het net niet het rijden van een scheve schaats maar wel ‘een uitstapje’. ‘Na mijn promotie in de Computerwetenschappen aan de Technische Universiteit Eindhoven in 1982 heb ik een tijdje aan het wetenschapsbeleid in Den Haag gewerkt, voor een afdeling die onderdeel uitmaakte van het ministerie van Onderwijs, Cultuur en Wetenschap. Ja, onder Wim Deetman, de toenmalige minister. Het moet ergens rond 1984 geweest zijn.’
Klint legt uit dat hij in de tijd ingevlogen werd om het zogeheten informatica-stimuleringsplan te maken. ‘Het is nauwelijks voor te stellen, maar toen bestonden er nog geen officiële informatica-opleidingen. De overheid had ook zoiets van ja, we moeten toch iets met die computers. Dat was dus het Informatica-stimuleringsplan. Ik heb daar in Den Haag geloof ik zeven versies van dat plan geschreven.’
Bedoeling van het plan was de informatica breder de samenleving in te trekken en het hele proces van het ontwikkelen van kennis op het gebied van informatica op gang te brengen. Klint: ‘Om informaticaopleidingen op te zetten, maar ook om over de implicaties van die automatisering na te denken. Een heel ambitieus project.’
Hij voegt eraan toe dat een uitvloeisel van het plan de oprichting, naar het voorbeeld van Amerikaanse universiteiten, van een Software Engineering Research Center (SERC) was, met als missie de kloof tussen onderzoek en industrie te overbruggen. Onverdeeld positief daarover was Klint niet. ‘Dat is dan zo’n uit de VS overgenomen maatregel die zo gemuteerd wordt, dat het hier niet kan werken. Je start aan een universiteit zo’n centrum, en stelt daar de hoogleraar aan voor het onderzoek en de samenwerking met het bedrijfsleven. Dat is in de VS een succesvol model. Maar in Nederland moesten vervolgens alle universiteiten in het SERC samenwerken. Dat werkte niet.’
Dit artikel verscheen eerder in jaargids Computable 100, magazine #1 2024