Situation: prise en charge de Python 2.7 interrompue depuis 2020

Python 2.7 n'est plus pris en charge le 1er janvier. Mais de nombreuses entreprises ne sont toujours pas passées à sa version mise à jour. Dans la documentation, nous discutons des raisons de cette situation.


Photos - Jan Kopřiva - Unsplash

Tout le monde n'est pas prêt pour le nouveau "python"


En 2020, Python 2.7 sera interrompu et les mises à jour de sécurité seront suspendues . Malgré le fait que ces plans aient été connus il y a cinq ans - en 2014, Guido van Rossum, l'auteur de Python, a personnellement encouragé les développeurs et les entreprises à migrer vers Python 3 - le processus d'adaptation de la nouvelle version est lent.

Au début de l'année, environ 60% des packages téléchargés depuis The Python Package Index (PyPI) étaient en version 2.7. En septembre, ce chiffre est tombé à 40%, mais il n'atteindra probablement pas zéro avant la date limite .

Ce qui empêche la migration


Dans les grandes entreprises, l'introduction d'un nouveau cadre ou la transition vers une technologie mise à jour nécessite toujours des ressources et du temps importants. Dans certains cas, le processus se prolonge pendant des mois, voire des années. Cela est dû à la base de code massive et à un grand nombre de dépendances. Facebook a commencé à transférer les services de l'entreprise vers Python 3 en 2014. Il a fallu un an pour mettre en œuvre ce projet - j'ai dû réécrire un nombre important de bibliothèques et corriger des milliers de régressions. Après cela, les ingénieurs de l'entreprise ont adopté Instagram - dans ce cas, la transition a pris dix mois. Dropbox migre vers Python 3 depuis trois ans maintenant.

Certaines entreprises ont des règles strictes pour négocier des mises à jour technologiques importantes avec l'équipe de sécurité. Parfois, cette unité régule même le chargement des paquets PIP. La «sécurité» craint que lors du passage à Python 3, des vulnérabilités critiques commencent à apparaître dans les services. En effet, dans des domaines tels que la banque et la santé, le coût des erreurs peut être élevé. Ainsi, l'année dernière, le BST britannique - en train d'introduire un nouveau système informatique - a rencontré un bug qui a provoqué un dysfonctionnement du système bancaire mobile. En conséquence, 1,9 million de personnes ont perdu l'accès à leurs comptes. L'organisation fait toujours face aux conséquences.

Entre autres choses, Python 2 prend toujours en charge les principaux systèmes d'exploitation basés sur Linux. Par exemple, dans RHEL, les utilisateurs peuvent choisir la version avec laquelle travailler. Bien que le système d'exploitation Red Hat migre progressivement vers Python 3, ce processus ne se déroule pas aussi bien que nous le souhaiterions. Dans le processus, des bugs sont régulièrement trouvés, principalement liés au fonctionnement des pointeurs. Debian conserve également le support de Python 2, mais la mise à niveau a déjà commencé . Il évolue également lentement - les ingénieurs testent régulièrement la compatibilité des bibliothèques.

Dans tous les cas, même après la transition complète vers Python 3, beaucoup continueront de fonctionner avec la version précédente - car certains packages seront pris en charge par les entreprises et les amateurs de communauté.

Ce que pense la communauté


Les résidents de Hacker News dans le sujet thématique notent que la principale raison de la lente migration est l'absence (jusqu'à récemment) de tout avantage tangible de ce processus. Il n'y avait pas de nouvelles fonctions dans le langage qui pourraient intéresser les développeurs et les pousser à passer à Python 3. Cependant, certaines décisions prises par les auteurs du langage, au contraire, gâchaient l'impression de programmer dessus. En particulier, une grande vague d'insatisfaction a été causée par l' exclusion de la prise en charge des chaînes d'octets et la transition vers un travail exclusif avec Unicode. Stack Overflow a également noté que l'écosystème Python manquait d'outils intégrés pour traduire automatiquement le code d'une version à une autre. Le problème a été résolu avec l'avènement d'utilitaires tels que 2to3 et six .


Photos - Hitesh Choudhary - Unsplash

La fonctionnalité de Python 3 s'est considérablement développée ces dernières années. Ajout de la multiplication matricielle, du module asyncio pour organiser la programmation compétitive, ainsi que des annotations des types de variables, des champs de classe, des arguments et des valeurs de retour des fonctions. La prise en charge de Python 3 est même apparue pour d'autres bibliothèques populaires, telles que scikit-learn pour ML. L'ensemble de fonctionnalités mis à jour devrait convaincre les entreprises de passer à la prochaine version de la langue. Et tandis que le nombre d'adhérents à Python 3 augmentera considérablement l'année prochaine, une transition complète prendra beaucoup de temps.


Chez 1cloud.ru, nous proposons un service d'hébergement DNS . Les utilisateurs enregistrés l'obtiennent gratuitement.

Toutes les questions liées au fonctionnement du service seront répondues par des spécialistes de notre centre de compétence.


Lecture supplémentaire sur le blog 1cloud:

Le cloud sauvera-t-il les smartphones ultra-économiques
«Comment nous construisons l'IaaS»: matériaux 1cloud

Contrôle des appareils électroniques à la frontière - un besoin ou une violation des droits de l'homme?
C'est le tour: pourquoi Apple a changé les exigences pour les développeurs d'applications


Source: https://habr.com/ru/post/fr477944/


All Articles