Wat Python eigenlijk is
Van een persoonlijk project naar een taal van de gemeenschap
In 2008 brak Python zichzelf bewust.
Python 3.0 veranderde de taal op manieren waardoor oudere programma’s niet meer werkten. Elk team, elk boek, elke les en elke pakketbeheerder kreeg werk te doen, en heel veel mensen stelden dat jarenlang uit. Python 2 en Python 3 bestonden meer dan een decennium naast elkaar.
Drie decennia, zes keerpunten
| Wanneer | Wat er gebeurde | Wat het veranderde |
|---|---|---|
| Februari 1991 | Van Rossum deelde Python op USENET, het discussienetwerk dat mensen vóór het web gebruikten | Het was geen privéproject meer. Iedereen kon het downloaden, erover klagen en verbeteringen terugsturen |
| Januari 1994 | Python 1.0 | Een openbaar ijkpunt: iets dat stabiel genoeg was om op voort te bouwen. Het werk reikte toen al verder dan de oorspronkelijke auteur |
| 2000 en 2001 | Python 2.0, gevolgd door de Python Software Foundation, een stichting zonder winstoogmerk die de wettelijke rechten op Python bezit | Een versiereeks die bijna twintig jaar meeging, en een organisatie voor de infrastructuur, evenementen en gemeenschap |
| December 2008 | Python 3.0 | De breuk die aan het begin van deze les is beschreven |
| 2018 en 2019 | Van Rossum deed in juli 2018 een stap terug na bijna dertig jaar het laatste woord te hebben gehad. Begin 2019 werd de eerste vijfkoppige steering council, de bestuursraad, gekozen | Definitieve beslissingen waren niet langer afhankelijk van de beschikbaarheid van één persoon |
| Vanaf 2020 | De ondersteuning van Python 2.7 stopte in januari, met een laatste uitgave in april. Nieuwe versies verschenen voortaan jaarlijks | Geen verbeteringen meer voor Python 2, en voorspelbare momenten voor iedereen die op Python 3 bouwt |
Twee rijen verdienen nog wat uitleg. De PSF zorgt voor het project, niet voor de inhoud van de taal: ze bezit de wettelijke rechten en betaalt de infrastructuur. Wat er daadwerkelijk in Python komt, wordt elders besloten. De steering council wordt na elke uitgave met nieuwe functies opnieuw gekozen en geeft de voorkeur aan overeenstemming en delegatie boven zelf overal over stemmen.
Wat een taalbreuk duidelijk maakte
De overstap naar Python 3 verdient extra aandacht. Tussen de uitgave van Python 3 en het einde van de ondersteuning van Python 2 lagen elf jaar. De kosten kwamen terecht bij echte teams met echte budgetten.
Ik maakte deel uit van zo’n team. Overstappen van Python 2 naar Python 3 kostte echt werk, en dat werk moest prioriteit krijgen. Wat ik in de praktijk zag: de meeste projecten werden niet bijgewerkt, maar bleven bestaan als Python 2-projecten waar niemand aan wilde komen. De meeste verdwenen uiteindelijk; ze werden simpelweg oud genoeg om weg te gooien of werden vervangen door iets volledig nieuws.
Dat is om twee tegengestelde redenen belangrijk om te weten. Het laat zien dat een project bereid kan zijn een enorme rekening te accepteren om opgestapelde ontwerpproblemen op te lossen in plaats van ze voor altijd mee te dragen. Het laat ook precies zien hoe duur dat wordt zodra mensen afhankelijk van je zijn. Dat verklaart voor een belangrijk deel waarom het niet nog eens is gebeurd.
Python is open source: de code is beschikbaar onder voorwaarden die mensen toestaan haar te bekijken, te gebruiken en te verbeteren. Dat betekent niet dat er geen beheer is. Open ontwikkeling vraagt nog steeds om beoordeling, onderhoud en iemand die verantwoordelijkheid draagt voor beslissingen. Het opbouwen daarvan vormde een groot deel van het werk in de afgelopen drie decennia.
Wat de geschiedenis je niet kan vertellen
Dit alles geeft je redenen om Python serieus te nemen. Het project overleefde een zelf toegebrachte breuk, bouwde organisaties op die langer meegingen dan het gezag van de oprichter en is nieuwe versies blijven uitbrengen.
Het vertelt je helemaal niets over de vraag of Python bij jouw project past. Een taal kan oud, actief en goed bestuurd zijn, en toch volkomen ongeschikt voor wat je wilt bouwen.
Daarmee is de achtergrond compleet. Vanaf hier zoeken we naar bewijs: het soort werk waarvoor Python echt wordt gebruikt en waarom de taal daarvoor geschikt is.
Verder lezen (Engels)
De officiële Python-documentatie bevat een uitgebreidere tijdlijn van geschiedenis en licenties. PEP 13 beschrijft het huidige bestuursmodel. Een PEP, voluit Python Enhancement Proposal, is het documentformaat waarmee belangrijke voorstellen en besluiten over Python worden vastgelegd. Beide zijn optioneel.