Onderhouder van het versiesysteem begreep van het werk aan de vertaling van het project van Python 2 naar Python 3. Ondanks dat de eerste pogingen tot portering al in 2008 werden ondernomen, en de aanpassing voor het werken met Python 3 in een versneld tempo in 2015 begon, werd de volledige mogelijkheid om Python 3 te gebruiken pas gerealiseerd in de laatste Mercurial-versie 5.2.
De voorspellingen over de stabiliteit van de poort voor Python 3 zijn onthutsend. In het bijzonder wordt aangenomen dat er de komende jaren willekeurige fouten in de code zullen opduiken, aangezien de tests niet 100% van de codebasis dekken en veel problemen onopgemerkt blijven bij statische analyse, en pas tijdens de uitvoering zichtbaar worden. Bovendien blijven veel externe aanvullingen en uitbreidingen onvertaling naar Python 3.
Aangezien bij de portering werd besloten om de code geleidelijk aan te passen naar Python 3, terwijl de ondersteuning voor Python 2 behouden bleef, is de code verrijkt met tal van hacks om Python 2 en 3 te combineren, die na de stopzetting van de ondersteuning voor Python 2 moeten worden opgeruimd.
De onderhouder van Mercurial merkte op dat het besluit om de incompatibele versie van Python 3 te bevorderen en het als de nieuwe, meer correcte taal op te dringen, zonder actuele doorbraken die voor ontwikkelaars nuttig zijn, een grote vergissing was die veel schade toebracht aan de gemeenschap en een voorbeeld is van hoe grote projecten niet zouden moeten handelen. In plaats van geleidelijk functionaliteit op te bouwen en mogelijkheden voor incrementele aanpassing van applicaties te bieden, werden ontwikkelaars bij de release van Python 3 gedwongen om de code opnieuw te schrijven en middelen te besteden aan het onderhouden van afzonderlijke takken voor Python 2 en Python 3. Pas zeven jaar na de release van Python 3.0 werden in Python 3.5 functionaliteiten geïntroduceerd die het overgangsproces vergemakkelijkten en de werking van één codebasis met Python 2 en Python 3 mogelijk maakten.
Bron: opennet.ru
