0%

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

WanneerWat er gebeurdeWat het veranderde
Februari 1991Van Rossum deelde Python op USENET, het discussienetwerk dat mensen vóór het web gebruiktenHet was geen privéproject meer. Iedereen kon het downloaden, erover klagen en verbeteringen terugsturen
Januari 1994Python 1.0Een openbaar ijkpunt: iets dat stabiel genoeg was om op voort te bouwen. Het werk reikte toen al verder dan de oorspronkelijke auteur
2000 en 2001Python 2.0, gevolgd door de Python Software Foundation, een stichting zonder winstoogmerk die de wettelijke rechten op Python bezitEen versiereeks die bijna twintig jaar meeging, en een organisatie voor de infrastructuur, evenementen en gemeenschap
December 2008Python 3.0De breuk die aan het begin van deze les is beschreven
2018 en 2019Van 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, gekozenDefinitieve beslissingen waren niet langer afhankelijk van de beschikbaarheid van één persoon
Vanaf 2020De ondersteuning van Python 2.7 stopte in januari, met een laatste uitgave in april. Nieuwe versies verschenen voortaan jaarlijksGeen 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.