Python 2 blijft populair ondanks deadline einde ondersteuning

De ondersteuning van Python 2 eindigt op 1 januari volgend jaar. Toch loopt de migratie naar Python 3 moeizaam. Iets meer dan een maand voor de deadline blijft het aantal downloads voor de oudere versie immens.

Ongeveer 40 procent van de gedownloade Python-pakketten in september van dit jaar was Python 2.7. Dat is frappant, aangezien de ondersteuning voor Python 2 begin volgend jaar afloopt. Ontwikkelaars worden verwacht om hun code te migreren naar een versie van Python 3. Dat blijft een vervelende zaak, ook al werd Python 3 al in 2009 geïntroduceerd. Zonder ondersteuning blijft Python 2.7 onaangepast. Je kan ervan op aan dat er beveiligingslekken de kop zullen opsteken, en die blijven vervolgend onopgelost. Code die op versie 2 draait, wordt zo kwetsbaar.

Niet achterwaarts compatibel

Grote ondernemingen zoals Dropbox en Facebook migreerden hun miljoenen lijnen code al naar Python 3, en Instagram is ermee bezig. Kleine en middelgrote bedrijven hebben niet altijd tijd en personeel ter beschikking om zo’n migratie uit te voeren. Python 3 is niet achterwaarts compatibel, wat betekent dat een migratie heel wat om het lijf heeft, zeker wanneer een bedrijf op uitgebreide software geschreven in Python 2 vertrouwd.

Die realiteit was voldoende reden voor de cybersecurity-instantie van het VK om deze zomer al te waarschuwen voor de mogelijke gevaren van software die afhankelijk is van Python 2.x. Voorlopig lijkt het er in ieder geval op dat heel veel software nog geruime tijd op de oudere versie zal vertrouwen, met alle risico’s van dien.

Moeilijke introductie

De tergend trage migratie is vermoedelijk voor een stuk te wijten aan de moeilijke introductie van Python 3. In 2008 zorgde de nieuwe versie vooral voor veel kopzorgen. Ontwikkelaars moesten heel wat werk verrichten om hun code compatibel te maken met Python 3, maar kregen daar nauwelijks iets voor in de plaats. Python 2 werd netjes doorontwikkeld, en versie 3 werd genegeerd. Vandaag is Python 3.x natuurlijk wel volwassen, maar de trage adoptie van destijds heeft ervoor gezorgd dat er een enorme voorraad aan legacy-software de ronde doet.

Verder speelt de traditionele traagheid van ondernemingen een rol. De migratie van Windows 7 zal evenmin rond zijn tegen de deadline begin volgend jaar, ook al weten bedrijven al heel lang dat die er zat aan te komen. Endpoints naar Windows 10 upgraden is bovendien eenvoudiger dan migreren van Python 2. Microsoft hamert er immers op dat alles wat op Windows 7 werkt, ook zal draaien op Windows 10. Wie duizenden endpoints moet upgraden is beslist even bezig, maar dat werk valt in het niets bij de aanpassing van miljoenen lijnen code. De migratie bij Facebook heeft bijvoorbeeld drie jaar geduurd.