‘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.”
Zelf Python leren
Python leren voor beginners: wiki.python.org/moin/BeginnersGuide/NonProgrammers. Python leren voor gevorderden: www.python.org/community/sigs/current/edu-sig. Python voor wetenschappers: osl.iu.edu/~lums/swc
Python
Python is een objectgeoriënteerde hogere programmeertaal die in 1991 door Guido van Rossum werd ontwikkeld. Hij noemde de programmeertaal naar zijn favoriete comedy Monty Python’s Flying Circus. Python draait op Windows, Linux/Unix, Mac OS X, OS/2, Amiga, Palm Handhelds en mobiele telefoons van Nokia. Daarnaast kan Python gebruikt worden op virtuele machines geprogrammeerd in Java of .NET. Python wordt gedistribueerd onder een open source licentie. Iedereen kan Python daardoor gratis gebruiken, zelfs als hij of zij er commerciële producten mee bouwt.www.python.org
Toepassingen
Misschien wel de bekendste toepassing is het gebruik van Python als scriptingtaal (een taal waarin een webserver communiceert met webtoepassingen zodat applicatieverzoeken van webgebruikers kunnen worden beantwoord). Python kan ook gebruikt worden voor vele andere vormen van webontwikkeling. Binnen softwareontwikkeling kan Python gebruikt worden voor onder andere build control, compilatie, testen, bug tracking en project management. Ook kan Python gebruikt worden voor het krijgen van toegang tot databases als MySQL, Oracle en MS SQL Server. Andere toepassingen zijn het bouwen van grafische gebruiksinterfaces en 3D graphics. Daarnaast wordt Python veel gebruikt om netwerken op een laag niveau te programmeren. Verder is Python populair als wetenschappelijke programmeertaal. Tot slot is de taal heel geschikt voor het overbrengen van algemene programmeerprincipes, zowel voor beginners als gevorderden. Dat komt door de relatief eenvoudige syntax van Python en doordat Python ruimte biedt om te experimenteren met verschillende benaderingen, zoals functioneel, procedureel en objectgeoriënteerd programmeren.www.python.org/about/success
Guido van Rossum
Vanaf december 2005: Ontwikkelaar binnen Google. Besteedt de helft van zijn tijd aan de ontwikkeling van Python, schrijft de andere helft van zijn tijd tools voor Google-ontwikkelaars.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
10-02 Raadsels rond computerstoring Groningen
09-02 'Ook met cookiewet is gebruiker niet anoniem'
07-02 Detron zoekt naar scherper profiel
07-02 De lange weg naar ERP
01-02 Imtech ICT hoort bij tien grootste dienstverleners
31-01 Infotheek profiteert van overjarige hardware
27-01 iPad is favoriet in de zakelijke markt
25-01 Recessie schrikt ICT-bedrijven niet af bij...
23-01 Boek belicht tien effecten van opkomst apps
20-01 'Oracle wil iPad van de bedrijfs-ICT worden'
03-02 SLTN en ICTroom openen Datacenter Brabant
01-02 Spoelstra spreekt: Het is helemaal geen crisis
31-01 Viafrica levert diensten voor Nice ICT-centra...
30-01 Wennen aan cybercrime kost tijd
26-01 Be Informed komt met oplossingen voor overheden
23-01 Boek belicht tien effecten van opkomst apps
23-01 Sogeti publiceert boek over app-effecten
20-01 EU zoekt Nederlandse vrijwilligers voor...
19-01 Van oude IT, de dingen, die voorbijgaan…
13-01 Brein heeft last van Brein
|
|

