Maatschappij / Achtergrond
‘Een vlaag van jeugdige zelfoverschatting’
Guido van Rossum vertelt over zijn geesteskind Python
“De tijd van de programmeur is belangrijker dan de tijd van de computer. Want computers worden steeds sneller, maar programmeurs niet.” Pythonontwerper Guido van Rossum over de geboorte van zijn geesteskind en de filosofie achter Python.
Industrial Light & Magic (bekend van de visuele effecten voor Star Wars) gebruikt Python om hun computers en softwarecomponenten met elkaar te verbinden.
Guido van Rossum: "Toen dacht ik in een vlaag van jeugdige ongebreidelde zelfoverschatting: laat ik die taal zelf programmeren."
Een ander principe dat ik heb overgenomen is: een klein aantal heel krachtige datatypes. In bijvoorbeeld Java en C heb je een heleboel verschillende varianten op getallen. Die vormen een extra keuzeprobleem voor de programmeur, want dat betekent dat je van tevoren moet bepalen of je getallen in 32 bits gaan passen of dat je misschien toch 64 bits nodig hebt. Dat vertraagt je bij het programmeren. De centrale filosofie achter Python is: de tijd van de programmeur is belangrijker dan de tijd van de computer. Want computers worden steeds sneller, maar programmeurs niet.”
“Eind jaren tachtig ging ik applicaties schrijven voor een onderzoeksproject onder leiding van Sabe Mullender en Andy Tanenbaum, naar een gedistribueerd besturingssysteem op basis van een micro kernel. Dat was een beetje een modeterm. Het komt erop neer dat je de harde kern van het besturingssysteem – het gedeelte dat als het niet werkt compleet fataal is voor alles wat je met de computer probeert te doen – zo klein mogelijk houdt. Alle andere dingen, zoals een disk driver, device drivers en file systemen codeer je buiten het besturingssysteem, als gewone applicaties. Als er vervolgens iets mis is met je netwerk driver, dan kun je misschien het netwerk niet meer gebruiken, maar nog wel je bestanden opslaan.
“De enige programmeertaal die daarvoor op dat moment geschikt was, was C. Het was taai werk om daarmee applicaties te schrijven. Als ik iets heel kleins verkeerd deed, kwam dat vaak pas naar boven doordat het uiteindelijke programma op een heel onaangename wijze crashte. De compiler merkte het vaak niet. Nou zijn er wel hulpmiddelen om je code te debuggen, maar ik dacht: dat moet toch beter kunnen. Bovendien: C is een prima taal als je heel efficiënte code wilt schrijven, maar we hadden op een gegeven moment ook applicaties nodig als een loginprogramma, dat je maar één keer per sessie gebruikt. Of het nou vijf milliseconden of honderd milliseconden duurt om je wachtwoord te controleren, dat merkt niemand.
“Dus begon ik te denken aan een programmeertaal op een veel hoger niveau. Eerst overwoog ik ABC te gebruiken, maar dat kon slecht met andere applicaties communiceren.
Toen dacht ik in een vlaag van jeugdige ongebreidelde zelfoverschatting: laat ik die taal zelf programmeren. Ik had natuurlijk door het werk aan het ABC-project en doordat programmeertalen altijd een hobby van me zijn geweest, een behoorlijke kennis van hoe je een interpreter van een programmeertaal schrijft. En ik had iets over Bytecode gelezen in een boek over Smalltalk. Na een paar maanden ontwerpen, in de weekenden en avonduren, had ik iets wat werkte. Mijn onderzoekscollega’s waren meteen enthousiast. Die eerste gebruikers, met name Jack Jansen en Sjoerd Mullender, werden ook meteen de eerste codevelopers. Ze verbeterden de interpreter en voegden onderdelen toe aan de standaardbibliotheek.
“Begin 1991, toen Python iets ouder dan een jaar was, besloten we een distributie te maken. Usenet was inmiddels zeer populair en wijdverbreid, dus konden we die distributie vrij gemakkelijk naar usenetgebruikers over de hele wereld pushen. De respons was overweldigend. Met usenet kun je niet zien hoeveel er gedownload wordt, maar ik merkte het aan de hoeveelheid mail die ik kreeg. Ook ontving ik de eerste mails van buiten het CWI in de trant van: “Dit is precies wat ik nodig heb! Alleen die-en-die functie werkt niet op mijn Unix-variant. Maar ik heb uitgevonden hoe ik het kan verbeteren en hier zijn drie regels code. Zo werd Python geleidelijk beter en ontstonden er nieuwe implementaties.
“Het feit dat er zoveel toepassingen voor Python zijn, zal er misschien iets mee te maken hebben dat ik zelf zo’n breed interesseveld heb. Python wordt vaak een scriptingtaal genoemd, maar ik zou het liever een hoog-niveau programmeertaal noemen. Omdat je als programmeur binnen Python minder aandacht aan details hoeft te besteden, is het heel geschikt om te experimenteren met nieuwe typen software. Als je heel precies wat je wilt, je wilt bijvoorbeeld de jpeg-standaard implementeren, dan kun je dat waarschijnlijk net zo makkelijk in een andere taal doen. Maar als je eigenlijk nog nauwelijks weet wat je wil – ik heb dat zelf heel vaak aan de hand gehad – dan is Python ideaal.
“Een andere reden voor het succes van Python is dat ik altijd heel open geweest ben in het accepteren van bijdragen. Ik ben heel erg een pietje-precies als het gaat om de taal zelf, maar ik heb altijd tegen mensen gezegd die de taal wilden aanpassen voor een bepaalde toepassing: laten we nou niet een hele nieuwe syntactische constructie ontwerpen, maar in plaats daarvan jou een standaardbibliotheek geven. Bovendien kun je in Python extensiemodules gebruiken. Dat betekent dat je bijvoorbeeld een module in C schrijft en die aanroept vanuit Python. Zo hebben Pythongebruikers toch veel vrijheid om hun eigen datatypes te definiëren. De taal zelf is relatief klein, maar daardoor toch heel krachtig.”
Python voor wetenschappers: osl.iu.edu/~lums/swc
www.python.org
www.python.org/about/success
2003: senior language architect voor Elemental Security
2000: Director of PythonLabs bij Zope Corporation
2000: Director of PythonLabs bij BeOpen.com
1995-2000: Pythonontwikkelaar en onderzoeker naar mobile agents in gedistribueerde systemen bij het CNRI (Corporation for National Research Initiatives)
1994: Pythonontwikkelaar bij NIST (National Institute of Standards and Technology)
1982– 995: onderzoeker bij het Centrum voor Wiskunde en Informatica (CWI) in Amsterdam
- 12:39 Nieuwe fase in ICT: van technologie naar ethiek
- 17:47 Boek FNV brengt ZZP'ers ICT-markt in kaart
- 17:40 Universiteit Twente leidt risicomanager op
- 14:58 Telindus leidt MBO'ers op tot netwerkbeheerder
- 11:52 Crisis? Welke crisis?
- 14:49 'Jongste generatie gebruikt minder e-mail'
- 16:59 InfoSec - Word virusanalist in een kwartier
- 11:20 Consultants blijven kort bij dezelfde baas
- 10:00 Cascadis: gemeenten halen diginorm niet
- 14:00 ICT-projecten gaan steevast ergens fout
'ICT in VS verkiest Obama'
De grote ondernemingen uit de Amerikaanse ict-sector, zoals Google en Microsoft, blijken een voorkeur te hebben voor de democraat Barack Obama. Voornamelijk Obama's verkiezingscampagne ontvangt hun donaties.
'Amerikaanse ICT-bedrijven verkiezen Obama'Groene ICT en virtualisatie: feit of fictie?
07-11 11:28 Op het Topic Virtualisatie is een discussie ontstaan over de in zet van virtualisatie om tot groene ict te komen. Groene ict wordt vaak door leveranciers genoemd als reden voor...
Meer maatschappij achtergrondGroene ICT en virtualisatie: feit of fictie?
07-11 11:28 Op het Topic Virtualisatie is een discussie ontstaan over de in zet van virtualisatie om tot groene ict te komen. Groene ict wordt vaak door leveranciers genoemd als reden voor...
Meer maatschappij achtergrondICT-projecten gaan steevast ergens fout
07-11 14:00 Het belang van ict voor de economie en de omvang van de sector roepen om structureel risicomanagement in de branche. In Nederland worden de risico's van ict-bedrijven zwaar...
Meer maatschappij opinieSeminar 'Serverruimte van de toekomst'
02-10 14:21 Ict is steeds belangrijker en dus is het - toekomstbestendig - inrichten van serverruimtes ook steeds belangrijker. En moeilijker. Dit bleek wel uit de praktijkverhalen op het...
Meer maatschappij praktijk
