Op weg naar de titel ‘Bedenker Populairste Programmeertaal’
De Carrière van Guido van Rossum

Guido van Rossum bedacht precies 30 jaar geleden Python, de programmeertaal die inmiddels na Java en C de meestgebruikte programmeertaal is volgens de Tiobe-index. Veel internetdiensten, zoals Instagram en Dropbox, zijn vrijwel volledig gebaseerd op Pythoncode.
Dit artikel verscheen eerder in AG Connect, dec 2019
- Guido van Rossum bedacht Python 30 jaar geleden; de taal is nu de op twee na meest gebruikte programmeertaal.
- Van Rossum ervoer stress door technische discussies en moeilijke beslissingen in de open-source gemeenschap.
- Veel organisaties worstelen met de overgang van Python 2 naar 3; stringbeheer en schaalbaarheid zijn belangrijke obstakels.
VAN ROSSUM LEGDE DE BASIS VOOR DE OPENSOURCEPROGRAMMEERTAAL IN AMSTERDAM BIJ HET CENTRUM WISKUNDE & INFORMATICA (CWI). HIJ LEIDDE DAARNA DE SNELGROEIENDE ONTWIKKELAARSGEMEENSCHAP TERWIJL HIJ IN DIENST WAS BIJ ACHTEREENVOLGENS VERSCHILLENDE START-UPS, GOOGLE EN DROPBOX IN SILICON VALLEY.
Voor zijn prestaties kreeg hij vorige maand de Dijkstra Fellowship van het CWI. In oktober ging Van Rossum met pensioen bij Dropbox en vorig jaar nam hij al afstand van zijn titel BDFL (Benevolent Dictator for Life) van Python en de directe bemoeienis met de doorontwikkeling van de taal.
Met pensioen, en nu?
Eindelijk vrije tijd. Ik ben van plan om gewoon veel te gaan fietsen, wandelen, vogeltjes kijken en dergelijke. Maar ik heb ook een hobbyproject. Weer met Python. Er zijn een paar interessante ontwikkelingen in de parsertechnologie. Ik wil kijken of er een betere parser voor Python te ontwikkelen is. Een slimme student in Berlijn heeft mijn blogpost daarover opgepikt en doet er veel werk aan. Ik begeleid hem enkele uren per week. Maar ik besteed zeker ook nog een paar uur per dag aan mijn Pythonmail.
Hoe bevalt het een jaar na afscheid van de BDFL-rol bij Python?
Heel goed. Had ik al eerder moeten doen. Ik zat al een tijdje op de rand van burnout Ik was gewoon moe van de reacties van sommige mensen die ik vertrouwde, maar die geen vertrouwen meer hadden in mij. Als ik zei: ‘Moeten we daar niet eens over praten?’, dan vonden ze dat er niks aan de hand was. Maar dan kwam er even later toch weer een gemene tweet. Dat vond ik stressvol. Soms waren er gewoon technische discussies die eindeloos duurden. Dan bleef het maar rondzingen zonder dat er een conclusie werd getrokken. In een commerciële ontwikkelingsomgeving kun je daar als manager makkelijker iets aan doen. Dan neemt de manager een besluit en is de discussie afgelopen. In een vrijwilligersorganisatie zoals een opensourcegemeenschap is het moeilijker om te zeggen: ‘Nu is het afgelopen’. Er is ook minder druk om een beslissing te nemen, want er is geen deadline voor een product launch. Er is geen salesorganisatie die klanten bepaalde features belooft die de engineers dan maar moeten realiseren in de volgende versie. In een opensourceorganisatie is de regel: als het niet in versie 3.8 komt, dan komt het wel in versie 3.9. Maar ondertussen gaat de discussie door. Na 29 jaar was ik het wel moe dat me steeds problemen werden voorgelegd waarvan ik absoluut geen verstand heb. Nu hoef ik niet meer overal een mening over te hebben. En zelfs als ik een mening heb, hoef ik hem niet te uiten. Als iedereen het met me oneens is, is dat ook prima.
Kun u een voorbeeld noemen van zo’n probleem?
Poeh, het zijn vaak de problemen van de korte termijn. Maar packaging, de distributie van softwarepakketten of bibliotheken van Python was wel zo’n onderwerp waarbij je het nooit iedereen naar de zin kunt maken. Als de Unixmensen blij zijn, werkt de oplossing op Windows niet goed. En als het op RedHat Linux werkt, werkt het weer niet goed op Debian of Ubuntu, enzovoort. Hoewel een groep van onze core developers zich daarmee bezighield, zijn er sterke meningen over en daar maakte ik me dan toch zorgen over.
Wat is het leukste in de IT?
Als iemand met een onmogelijk probleem bij je langskomt en je vindt vrijwel meteen de oplossing, soms al voor degene is uitgesproken. Programmeren heeft me gefascineerd vanaf het moment dat ik de computer ontdekte in de kelder van het wiskundegebouw waar ik aan mijn studie begon. Ik was daar niet weg te slaan. Met maar een heel kleine beschrijving van de kernpunten van een taal kon ik meteen beginnen met programmeren. En kon ik leuke problemen oplossen. Daar kreeg ik heel veel voldoening van.
U bent nu met pensioen, maar stel dat u nog een keer een keuze zou kunnen maken, welk bedrijf zou voor u cool zijn om voor te werken?
Ik heb grote problemen met Facebooks businessmodel, maar afgezien daarvan klinkt de technologie van Instagram heel interessant. En het is ook allemaal Python. Instagram heeft – anders dan Dropbox – echt te maken met het schalen van een Pythonapplicatie. Ik weet niet hoeveel miljarden gebruikers Instagram wel niet heeft op de wereld. En ieder request heeft een Python handler. Ik heb grote bewondering voor de engineers die daar werken. Ik denk dat ik daar best wat van zou kunnen leren.
Veel organisaties hebben nog Python 2.7-code, die vanaf januari 2020 niet meer wordt ondersteund. Bij Dropbox begeleidde u onder meer de overgang van Python 2 naar Python 3. Welke obstakels kwam u tegen?
Een vrij universeel probleem bij grote migraties is de eindeloze verwarring rond strings. In Python 2 zijn er twee soorten strings. Een daarvan is unicode en de ander zijn 8-bitstrings. In Python 3 zijn er óók twee soorten strings. Een daarvan wordt gebruikt voor alle tekst inclusief unicode en de andere wordt gebruikt in een bepaalde situatie. Maar in Python 2 denk je daar nooit over na, tot het te laat is. Dan kun je meestal niet zien of de ontwikkelaars nu bytes of tekst bedoelden. Dat moet je proefondervindelijk ontdekken. Vervolgens moet je vaak heel uitzonderlijke oplossingen bedenken om die code naar Python 3 te porten. Want in Python 3 moet je echt weten of het om tekst of binaire code gaat, want die worden anders behandeld. Voor Dropbox en voor een paar andere grote techbedrijven is de schaal van de migratie een bijzonder probleem. Dropbox moest meer dan 5 miljoen regels omzetten.
Vindt u dat Python problemen geeft met opschalen?
Het hangt ervan af hoe ver je wilt gaan. Voor Facebook, Dropbox of Google is het wel hard werken. Maar het merendeel van de toepassingen schaalt helemaal niet zo ver. Vaak is het belangrijker hoe snel je kunt ontwikkelen dan hoe snel het draait. Een heel bruikbare tactiek, die ook wordt toegepast bij Dropbox en Google, is het opbreken van de code. Sommige delen zijn erg stabiel maar moeten heel goed kunnen schalen. Andere onderdelen hoeven niet zo te kunnen opschalen maar zijn wel onderhevig aan verandering en onderhoud. Vaak komt er dan een verdeling naar boven waarbij je 20% van de code herschrijft in C of in C++ of misschien in Go, zoals bij Dropbox of Rust. En 80% kan gewoon in Python blijven. Dat gezegd hebbende, als je niet weet hoe je programmeert voor een gedistribueerde omgeving, kun je best een Javaprogramma schrijven dat veel sneller loopt, maar als je je networkcalls niet op die juiste manier batcht en cachet, schaalt het helemaal niet.
Iedereen vereenzelvigt u met Python. Heeft u nog andere projecten opgezet?
Python is wel mijn passie. Maar bij Google heb ik ook in anderhalf jaar tijd een intern codereviewgereedschap opgezet onder de naam Mondriaan. Er waren wel veel mensen enthousiast over en daar ben ik best trots op.
Hoe zou u herinnerd willen worden?
(Lacht) Als de bedenker van de populairste programmeertaal! Ik ben op de goede weg. Iedere informaticastudent leert nu Python. Wat je jong leert, daar ben je loyaal aan. Dus de eerste tien jaar zijn er nog genoeg trouwe gebruikers.