Python >> Tutoriel Python >  >> Python

5 raisons pour lesquelles vous devriez migrer de Python 2 vers Python 3

Si vous avez Python dans votre pile technologique, la date du 1er janvier 2020 est probablement marquée depuis longtemps sur votre calendrier; sinon, alors ça devrait l'être - c'est à ce moment-là que Python 2 perd finalement le support.

Il y a quelque temps, nous avons publié un guide complet sur la migration de Python 2 vers Python 3. L'objectif de ce guide était d'expliquer comment pour passer à la mise à niveau vers Python 3.

Maintenant, nous aimerions prendre du recul et répondre à une question encore plus fondamentale que vous vous posez peut-être :pourquoi la migration est-elle si importante en premier lieu ?

Lisez la suite pour apprendre exactement cela, en 5 raisons simples.

Le (long) voyage vers la migration Python 3

Python existe depuis 1990. Le langage avait prospéré pendant longtemps avant la sortie de Python 3 il y a environ une décennie, il n'est donc pas surprenant qu'un grand nombre de projets Python utilisent encore la version 2 pour ce jour.

Depuis l'introduction de Python 3, les utilisateurs et les passionnés de Python ont commencé à se poser une question simple :quand le moment sera-t-il venu de migrer ?

La date initiale de fin de vie de Python 2 était censée être 2015, puis repoussée au début de 2020. Une fois la date enfin fixée, la question de la migration a commencé à surgir beaucoup plus souvent .

Quelle sera la gravité des projets Python 2 après leur fin de vie ?

Maintenant que le moment est presque arrivé et que la réponse à la question initiale ne pourrait pas être plus claire, le moment de migrer est maintenant —d'autres préoccupations suivent rapidement.

Les coûts de mise à niveau, qui est un investissement nécessaire, se classent assez haut sur cette liste, mais plus encore, une autre question brûlante apparaît :et si vous ne faites pas ça à temps? Quels sont les risques potentiels, y compris financiers, de rester coincé avec Python 2 ?

La bonne nouvelle est que ce ne sera pas tout feu tout flamme si vous manquez le délai fixé. Le monde ne s'arrêtera pas pour vos projets Python 2 le 1er janvier 2020, c'est certain.

La mauvaise nouvelle est que la maintenance de ces projets au-delà de cette date va devenir beaucoup plus difficile, et cela va continuer à s'aggraver plus vous retardez la migration. Au fil du temps, le développement actif de tels projets en particulier en souffrira le plus.

5 raisons de migrer de Python 2 vers Python 3

Puisque nous avons déjà établi qu'il serait préférable que vous parveniez à migrer vers Python 3 avant le 1er janvier 2020, examinons nos 5 raisons pour lesquelles nous pensons que c'est une bonne idée, exactement.

1. Bibliothèques tierces

L'un des plus grands avantages de Python est la vaste collection de packages tiers faciles à utiliser qu'il propose. À première vue, il est difficile d'imaginer un scénario où cela n'est pas considéré comme un aspect définitivement positif de Python.

Cependant, assez ironiquement, la disponibilité immédiate et le grand nombre de bibliothèques et de frameworks Python ont précisément été les principales raisons de la lenteur de l'adoption de Python 3. Pour ajouter l'insulte à l'injure, ils deviennent également le fléau de Python 2.

Les packages Python ont tendance à laisser tomber les interpréteurs au-delà de leur fin de vie. Ceci est fait pour réduire le travail requis des développeurs, qui sont souvent obligés de soutenir ces projets pendant leur temps libre.

L'abandon de la prise en charge des versions majeures de Python n'est jamais une décision prise à la légère. Cela étant dit, de nombreuses bibliothèques l'ont déjà fait ou ont déclaré leur intention de le faire avant ou le 1er janvier 2020.

Dans l'ensemble, en ce qui concerne les bibliothèques que vous utilisez dans vos projets Python 2, ne vous attendez pas à trop de mises à jour en 2019, en particulier des mises à jour qui incluraient de nouvelles fonctionnalités dont vous pourriez bénéficier .

2. Sécurité du logiciel

Si votre projet est en mode maintenance uniquement, la sécurité doit être votre principale préoccupation lorsque vous envisagez la fin de la prise en charge de Python 2.

Sécuriser un interpréteur Python sera relativement simple. En découvrant une faille de sécurité dans Python 2.7 au-delà de sa fin de vie, vous devrez appliquer des correctifs de sécurité non officiels. Ceux-ci peuvent provenir de distributions Linux avec une période de support allant jusqu'à 10 ans. Cependant, si vous n'utilisez pas actuellement une distribution aussi longuement prise en charge, il sera nécessaire de les appliquer manuellement.

La maintenance des dépendances tierces va devenir beaucoup plus problématique, car elles risquent de perdre le support de Python 2, si elles ne l'ont pas déjà perdu. Dans le cas (très probable) où vous rencontreriez une vulnérabilité dans l'un d'entre eux, vous serez seul. C'est pourquoi il s'agit probablement de la menace la plus grave pour la sécurité des applications Python 2.

Assurer la sécurité des logiciels est une obligation légale, en particulier lorsque vous traitez des informations personnelles dans le domaine du RGPD. Maintenir votre logiciel à jour se classe naturellement parmi les meilleures pratiques de sécurité, et un interpréteur Python obsolète serait presque assuré d'apparaître comme un drapeau rouge lors d'un audit de sécurité.

3. Assistance aux développeurs

Les éditeurs de logiciels ont l'un des taux de rotation du personnel les plus élevés du marché. Il n'est donc pas surprenant que attirer de nouveaux développeurs et garder vos développeurs actuels le plus longtemps possible soit une priorité absolue.

Les développeurs aiment réparer les choses. Ils sont toujours prêts à relever un nouveau défi, toujours à la recherche de la meilleure chose à faire. Si vous ne les fournissez pas pour eux, vous risquez de perdre leur intérêt et par la suite eux dans le processus.

Pendant ce temps, Python 2 devient lentement mais sûrement une relique du passé, ou au mieux une niche . C'est un train à grande vitesse qui se dirige vers une obsolescence future avant que nous ne le sachions. Résoudre des problèmes pour des technologies non prises en charge et obsolètes ne semble pas être une bonne utilisation de toute la puissance de feu mentale des développeurs.

Python 2 n'est plus amusant ni excitant. Au lieu de cela, il est devenu une condamnation à mort pour la créativité de vos développeurs et une nuisance pour les parties prenantes de votre projet et les personnes qui le mettent en œuvre.

En bref, ne pas migrer vers Python 3 n'augure rien de bon pour l'avenir de vos projets Python, ne serait-ce que parce que vous pourriez bientôt commencer à avoir du mal à trouver des développeurs pour travailler dessus.

4. Occasions manquées

Nous avons déjà mentionné les bibliothèques tierces, n'est-ce pas ? Eh bien, à part cela, Python 3 apporte beaucoup à la table avec sa seule bibliothèque standard.

Pour commencer, la sécurité des types a été considérablement améliorée. Cela couvre sans doute le changement le plus connu :les chaînes qui sont Unicode par défaut et d'un type explicitement différent des octets. D'après notre expérience de première main, cela permet d'économiser d'innombrables heures que vous passeriez normalement à rechercher les erreurs de décodage Unicode.

Mais ce n'est pas tout. Python 3 vous offre également :

  • saisir des annotations vous pouvez en tirer parti pour améliorer l'analyse de code statique et la convivialité globale ;
  • programmation asynchrone native ;
  • exceptions chaînées , qui sont particulièrement utiles lors du débogage ;
  • autres fonctionnalités utiles qui rendent le codage en Python beaucoup plus efficace.

La liste est longue, et elle ne manquera pas de s'allonger à chaque nouvelle version de Python 3.

5. Avantages tangibles

Python 3 offre également des avantages plus tangibles. Par exemple, Instagram, l'un des produits logiciels les plus populaires utilisant Python, a signalé une augmentation de 12 % des performances du processeur et une amélioration de 30 % de l'utilisation des ressources mémoire après sa migration Python 3 combinée à une mise à jour Django.

En parlant de cela, il convient également de mentionner que alors que Django supportait Python 2 depuis longtemps, il est devenu Python 3 uniquement lorsque Django 2.0 est sorti. Avec d'autres bibliothèques emboîtant le pas, il est tout à fait évident que le type de changement subi par Instagram pourrait ne pas être possible sans une mise à niveau de l'interpréteur pour les projets Python 2.

Les améliorations de performances de Python sont continuellement évaluées. Cependant, il convient de noter que ces benchmarks de jouets montrent rarement à quel point la mise à niveau vers Python 3 peut être bénéfique pour les applications critiques.

Quelles sont vos options pour continuer à prendre en charge Python 2 ?

Rien n'indique que la date de fin de vie de Python 2 sera à nouveau repoussée. La dernière fois que le créateur de Python, Guido van Rossum, a été publiquement interrogé à ce sujet, il n'a réaffirmé sa position sur la fin de la prise en charge de Python 2 qu'avec le 1er janvier 2020. Même au moment de la précédente extension en 2014, l'ancien dictateur bienveillant pour Life of the Le langage Python était assez clair :il n'y aura pas de Python 2.8.

Comme nous l'avons déjà dit, certaines distributions Linux continueront probablement à prendre en charge Python 3 au cours des deux prochaines années, mais cette prise en charge n'impliquera que des correctifs de sécurité, et uniquement pour l'interpréteur principal et les bibliothèques les plus populaires.

En ce qui concerne les nouvelles fonctionnalités, la seule façon de les obtenir dans Python 2 au cours de la dernière décennie a été d'utiliser des backports ou des forks hacky. Le fork le plus important de Python 2.7 est Tauthon, qui tente d'apporter certaines fonctionnalités de Python 3 à Python 2. Cependant, la vitesse de développement de Tauthon a considérablement diminué ces dernières années.

Tout cela brosse un tableau relativement simple :le jeu le plus intelligent pour vous consiste simplement à migrer vers Python 3, au lieu de vous accrocher à l'ancienne version sans raison valable.

Dernières réflexions sur la progression de la migration Python 3

L'utilisation de Python 2 en ce moment doit être traitée de la même manière que n'importe quelle dette de code :cela ne tuera pas nécessairement votre projet, mais cela affectera négativement votre produit, et continuera à le faire plus longtemps vous retardez la migration. Si vous vous souciez du bien-être à long terme de votre logiciel, le choix de mettre à jour votre version actuelle de Python devrait être une évidence.

Le 1er janvier 2020 approche à grands pas, mais il n'y a pas encore de raison de paniquer ; vous avez encore assez de temps pour migrer vers Python 3 et le faire correctement. Ce n'est pas une situation de type rats et naufrage.

La migration Python 3 n'est pas un processus qui devrait être précipité, mais le moment de commencer à y penser est déjà là. L'un des moyens les plus sûrs de procéder à la mise à niveau consiste à introduire progressivement la prise en charge de Python 3 au cours de votre développement quotidien. C'est la solution idéale pour les projets actifs et critiques.

Cette approche est décrite en détail dans notre guide de migration Python 2.7 vers 3. Nous vous recommandons fortement de le vérifier.

Et si vous avez besoin d'aide pour votre migration Python 3 ou votre développement Python dans son ensemble, n'hésitez pas à nous faire savoir comment nous pouvons vous aider. Nous sommes là pour vous !