Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Python Software Foundation annonce qu'elle mettra fin au support de Python 2 à partir du 1er janvier 2020
Et prévient qu'elle n'apportera plus son aide pour tout problème rencontré après cette date

Le , par Olivier Famien

136PARTAGES

13  0 
Depuis la sortie de Python 3.0, il est fortement recommandé d’abandonner les versions antérieures du langage de programmation Python au profit de cette dernière version. En mars dernier, Guido van Rossum, le créateur et leader du projet du langage de programmation Python, a annoncé que le support de la version 2.7 de python prendra fin le 1er janvier 2020. Après cette échéance, Python 2.7 ne bénéficiera plus d’aucune mise à jour, pas même pour des correctifs de sécurité. Bien évidemment, il est toujours possible que des développeurs indépendants fassent un fork de Python 2.7 pour assurer sa continuité. Mais pour Guido van Rossum, il ne faudra plus attendre de sa part et de son équipe des mises à jour ou même des décisions afférentes au développement de Python 2.7. Ce fait n’est pas sans importance, car dans la communauté Python, Guido van Rossum est considéré comme le dictateur bienveillant à vie.

Après l'annonce de Guido van Rossum, il était certain qu'une annonce plus officielle serait faite dans le même sens. Depuis quelques heures, la Python Software Foundation (PSF) a annoncé que le « 1er janvier 2020 serait le jour où elle mettra fin à Python 2. Cela signifie que nous ne l’améliorerons plus après ce jour-là, même si quelqu’un y trouve un problème de sécurité. Vous devriez passer à Python 3 dès que possible », suggère la fondation. Nous rappelons que la Python Software Foundation qui est composée de bénévoles a pour objectif de promouvoir, protéger et faire progresser le langage de programmation Python, ainsi que de soutenir et de faciliter la croissance de la communauté internationale des développeurs Python.

Selon la fondation, cette décision a été prise pour aider les utilisateurs de Python. Pour mieux se faire comprendre, la fondation donne les explications suivantes :

« Nous avons publié Python 2.0 en 2000. Quelques années plus tard, nous avons réalisé que nous devions apporter de grands changements pour améliorer Python. Donc, en 2006, nous avons lancé Python 3.0. Beaucoup de personnes n’ont pas effectué de mise à niveau et nous ne voulions pas leur faire de mal. Ainsi, depuis de nombreuses années, nous avons continué à améliorer et à publier Python 2 et Python 3 ».

« Mais cela rend difficile l’amélioration de Python. Il y a des améliorations que Python 2 ne peut pas gérer. Et nous avons moins de temps pour améliorer et accélérer Python 3. Et si de nombreuses personnes continuent à utiliser Python 2, les volontaires qui utilisent Python pour la création de logiciels en pâtissent. Ils ne peuvent pas utiliser les nouvelles fonctionnalités de Python 3 pour améliorer les outils qu’ils développent ».

« Nous ne voulions pas faire de mal aux utilisateurs de Python 2. Nous avons donc annoncé en 2008 que nous arrêterions Python 2 en 2015 et demandé aux personnes de passer à la version suivante avant cette date. Certains l’ont fait, d’autres pas. Donc, en 2014, nous avons prolongé cette échéance jusqu’en 2020 ». Mais à compter du 1er janvier 2020, la PSF annonce qu'elle mettra fin au support de Python 2.


Pour les personnes qui s’entêteront et continueront à utiliser Python 2 après cette date, la fondation souligne que si elles « rencontrent des problèmes de sécurité catastrophiques dans Python 2 ou des logiciels écrits en Python 2 », les volontaires [de PSF] ne les aideront pas. « Certains de ces problèmes commenceront le 1er janvier. D’autres problèmes s’aggraveront avec le temps », prévient PSF. En continuant à utiliser Python 3, « vous perdrez vos chances d’utiliser de bons outils, car ils ne fonctionneront que sur Python 3, et vous ralentirez les personnes qui dépendent de vous et travaillent avec vous ». Pour les logiciels écrits en Python 2, la PSF recommande de se tourner vers les outils de portage du code Python 2 vers Python 3. Certains développeurs qui sont passés de Python 2 à Python 3 affirment que cela a été la transition la plus facile jamais faite. Il existe une bibliothèque pour aider les développeurs à migrer leur code vers Python 3 et dans presque tous les cas, il est possible d’écrire du code compatible Python 2 et 3, fait remarquer un développeur.

Si par contre vous avez acheté un logiciel tiers déjà écrit en Python 2, il est conseillé de demander au fournisseur s’il dispose d’une assistance pour ce logiciel. Si ce n’est pas le cas, La PSF recommande quelques fournisseurs qui proposent contre rémunération une assistance technique pour Python 2. Nous avons Abilian, ActiveState, Python Academy et Snakedev.

Source : Python Software Foundation

Et vous ?

Quels commentaires faites-vous de la décision de la Python Software Foundation ?

Selon vous, devrait-on continuer à maintenir Python 2 ? Pour quelles raisons ?

Voir aussi

Meilleurs langages en 2019 selon l’IEEE : Python leader pour la troisième année consécutive, il s’impose dans tous les domaines dans lesquels il est utilisé, du développement web à l’embarqué
Meilleurs langages en 2018 selon l’IEEE : Python conforte sa place de leader grâce à son ascension dans le machine learning et l’embarqué
Netflix : Python est derrière chaque film que vous regardez, voici comment l’entreprise utilise le langage de programmation pour ses services
Python 3.8.0 : la première version bêta est publiée avec une API C pour améliorer la configuration de l’initialisation
Éducation : Python bientôt langage officiel de programmation en France ? Un projet dans le cadre de la réforme du Bac et du lycée

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 10/09/2019 à 12:04
Un exemple que je j'ai bien suivi est le langage Rust : il a mis en place un changement de syntaxe en 2018. Python et Perl ont clairement fait figure d'exemple à ne pas suivre lors des discutions sur la stratégie à adopter.
Leur solution finale a consisté à laisser chaque crate (l'équivalent du paquet) choisir l'édition qu'elle utilise(2015 ou 2018). Le compilateur est capable de compiler les deux éditions et les crates de différentes éditions peuvent interagir de manière totalement transparente.
Si l'édition n'est pas spécifiée c'est l'édition 2015 qui est employée, ainsi les anciennes crates continuent de fonctionner de manière totalement transparente, cependant l'outil qui crée les nouvelles crates définit par défaut la version à 2018.

J'ai moins suivi leur cas, mais il me semble que Go et Swift ont mis en place eux aussi des changements majeurs sans diviser lourdement leurs utilisateurs.
4  0 
Avatar de Aspartame
Membre actif https://www.developpez.com
Le 10/09/2019 à 0:08
Citation Envoyé par Olivier Famien Voir le message
« Nous avons publié Python 2.0 en 2000....

la PSF a vraiment dit ça ... waou!
1  0 
Avatar de wiztricks
Modérateur https://www.developpez.com
Le 10/09/2019 à 13:36
Citation Envoyé par stardeath Voir le message
de toute façon si les utilisateurs ne veulent pas migrer, ils feront tout pour ne pas le faire, autant dans ce cas ne pas s'emmerder avec ces personnes là, ils sont une perte de temps, autant se consacrer sur l'avenir et les gens qui le supporte.
Une stratégie de migration va dépendre du nombre d'utilisateurs impactés, de la quantité de bibliothèques à migrer pour qu'ils puissent migrer leurs propres applications et du coût, pour les différents développeurs, de maintenir une version python2 et une version "python3".

Et si la communauté Python était restée droit dans ses bottes, on aurait peut être eu droit à un fork pour tous ceux qui se sentaient un peu abandonnés.

A la place, nous avons eu des outils comme six qui permettent de maintenir des versions python2 et python3 assez facilement... Et plus de délais pour que cette migration ne soit pas une punition mais l'occasion d'apporter de nouvelles fonctionnalités aux utilisateurs finaux tout en profitant (un peu) de celles du langage.

Le choix étant comme toujours entre avancer plus vite et se retrouver un peu seul ou ralentir pour permettre aux autres de suivre.

- W
1  0 
Avatar de wiztricks
Modérateur https://www.developpez.com
Le 10/09/2019 à 18:14
Salut,

Citation Envoyé par stardeath Voir le message
selon mon expérience perso, dans les boites dans lesquelles je suis passé, la hiérarchie ne daigne pas regarder pour mettre les technos à jour tant qu'on leur met pas un couteau sous la gorge.
C'est une attitude humaine normale! Si on vous dit, il faut réaliser çà dans X mois, vous estimez la quantité de boulot à faire... Puis vous essayez de le facturer au client (car il faut bien vous payer à la fin du mois) et si la seule raison pour effectuer le boulot est juste d'être de conformité avec mais que çà n'apporte rien de plus aux utilisateurs (de l'application), c'est pas gagné.

Citation Envoyé par stardeath Voir le message
pour moi ça signifie pas de migration et l'accumulation de code en python 2 qui augmentera la charge de travail lors de la vraie migration en python 3 car on aura plus le choix
Le client sait qu'il devra migrer au plus tard à la date X et combien çà risque de lui coûter en prestations et en interne (parce qu'il va certainement falloir immobiliser des employés pour tester un peu plus lourdement la chose).
Si l'application doit subir des évolutions majeures (et que toutes les bibliothèques externes sont disponibles), il peut en profiter pour "migrer": il optimise le coût des tests.

S'il n'y a que des opérations de maintenance, il va attendre... Et cela ne coûtera pas forcément plus cher car le coût d'une migration n'est pas une fonction du nombre de lignes de code ou des fonctionnalités (c'est plus compliqué) et il profitera de l'expérience acquise par les autres sur Python3 (en trouvant plus facilement des solutions en cherchant sur Internet).

Maintenant, si je suis une SSII et que j'ai 50 clients pour cette application, je sais que je peux essayer d'investir pour migrer car j'ai on espoir qu'in fine, X % de ces clients migreront (un jour)... et charger le coût sur X * 50.

Ce n'est pas le même scénario et chaque application a sa propre trajectoire en fonction de tas de considérations externes (la deadline - quand migrer au plus tard - en étant une parmi d'autres).

Citation Envoyé par stardeath Voir le message
On n'applique pas la même stratégie pour la mise à jour des composants tiers ; là on attend le plus possible en faisant des bidouilles pas possible pour contourner les manques/bugs de ces composants, et dès que tu as le feu vert pour mettre à jour, il faudrait que ça soit immédiat et sans régression.
Ben oui, mais il suffit de regarder les contraintes économiques et les implications de changements de version qui posent toujours problème car il faut "tester" et on sait rarement si on a bien testé avant de balancer le truc en production. Donc... on tempère car on n'a pas envie de se faire fusiller par le directeur de la production ou le directeur des ventes qui va expliquer combien coûte un arrêt d'une heure, d'une journée,... sans compter les impacts sur l'image quand on ne peut pas consulter la base de donnée pour avoir l'état d'une livraison, d'une commande,...

C'est comme çà... bienvenue dans le monde de l'informatique d'entreprise.

Mais le gros soucis dans la migration Python3 a été la disponibilité des bibliothèques tierces. Car là, même si le client veut migrer, on ne peut pas (sauf à changer de bibliothèque mais les coûts sont autres).

- W
1  0 
Avatar de Uther
Expert éminent sénior https://www.developpez.com
Le 10/09/2019 à 9:47
Bravo à Python pour avoir montré l'exemple de ce qu'il ne faut pas faire pour assurer une transition réussie. Et non ce n'est même pas ironique. La mésaventure de Python aura au moins servi d'exemple aux langages modernes qui se sont globalement bien mieux tiré du guêpier qu'est un changement incompatible, même si ça restera toujours quelque chose de compliqué.

Avec la fin du support de Python 2 on peut espérer que l'un des problèmes les plus récurrent de python disparaitra enfin.
1  1 
Avatar de micka132
Expert confirmé https://www.developpez.com
Le 10/09/2019 à 9:52
Citation Envoyé par Uther Voir le message
La mésaventure de Python aura au moins servi d'exemple au langages modernes qui se sont bien mieux tiré (même si ça n'est toujours pas évident) du guêpier qu'est un changement incompatible.
Va dire ca aux utilisateurs d'Angular . Bon c'est un framework mais bon ca reste bien embêtant pour les pioneers qui ont participé à sa popularisation et qui se sont bien fait remercier!
0  0 
Avatar de Andarus
Membre averti https://www.developpez.com
Le 10/09/2019 à 11:11
Citation Envoyé par Uther Voir le message
La mésaventure de Python aura au moins servi d'exemple au langages modernes qui se sont bien mieux tiré (même si ça n'est toujours pas évident) du guêpier qu'est un changement incompatible.
Tu pourrais citer des exemples ça m’intéresse?
0  0 
Avatar de stardeath
Membre expert https://www.developpez.com
Le 10/09/2019 à 12:05
ils auraient du abandonner python 2 dès que python 3 était suffisamment stable, dans les environ de 2010 si mes souvenirs sont bons.
là ils ont juste donné des excuses aux utilisateurs de python 2 pour ne pas migrer rendant au fur et à mesure la migration de plus en plus difficile.
de toute façon si les utilisateurs ne veulent pas migrer, ils feront tout pour ne pas le faire, autant dans ce cas ne pas s'emmerder avec ces personnes là, ils sont une perte de temps, autant se consacrer sur l'avenir et les gens qui le supporte.
0  0 
Avatar de stardeath
Membre expert https://www.developpez.com
Le 10/09/2019 à 14:40
selon mon expérience perso, dans les boites dans lesquelles je suis passé, la hiérarchie ne daigne pas regarder pour mettre les technos à jour tant qu'on leur met pas un couteau sous la gorge. donc plus de délais, pour moi ça signifie pas de migration et l'accumulation de code en python 2 qui augmentera la charge de travail lors de la vraie migration en python 3 car on aura plus le choix. (et j'ai testé les outils pour gérer python 2 et 3 en même temps, j'ai eu très vite envie de me pendre tellement ça rajoutait de contraintes)

pareil, dans les différentes boites où je suis passé, on est plus dans la stratégie de faire des commits unitaires, avec des fonctionnalités bien séparées et pas faire un commit fourre tout, pour être capable d'identifier plus facilement les problèmes entre les différentes versions, etc. (je vais pas faire la panoplie des avantages de pas modifier la terre entière à chaque commit), mais par contre dans ces mêmes boites, on n'applique pas la même stratégie pour la mise à jour des composants tiers ; là on attend le plus possible en faisant des bidouilles pas possible pour contourner les manques/bugs de ces composants, et dès que tu as le feu vert pour mettre à jour, il faudrait que ça soit immédiat et sans régression.

toujours pour moi, il faut arrêter ce double standard, soit on reste figé à un instant T, et on assume ; soit on se met à jour de façon régulière pour limiter les conséquences de delta trop important.
0  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web