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 !

Alors que la fin du support de Python 2.7 approche à grands pas, certains utilisateurs manifestent leur réjouissance
Tandis que d'autres sont tristes, comment accueilliez-vous la fin de Python 2 ?

Le , par Olivier Famien

594PARTAGES

18  0 
En septembre dernier Python Software Foundation (abrégé PSF) qui 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 a annoncé que le « ;1er janvier 2020 serait le jour où elle mettra fin à Python 2 ;». Pour la fondation, cela signifie qu’aucune amélioration ne sera apportée au langage après ce jour-là, même si quelqu’un y trouvait un problème de sécurité. « ;Vous devriez passer à Python 3 dès que possible ;», a martelé PSF.

Il faut souligner que depuis 2015, il était prévu de mettre fin au support de Python 2.7. Mais face à la grande utilisation de cette version, cette première échéance a été reportée au 1er janvier 2020 afin de donner du temps supplémentaire aux individus et entreprises pour migrer vers Python 3. Après plusieurs années d’attente, 2020 est maintenant à la porte. Plus que 2 jours pour passer à la nouvelle année. Pour certains, c’est le lieu de se souvenir de tous les bons moments que l’on a pu passer avec cette version du langage. Aussi pour marquer la fin de Python 2, un utilisateur a eu l’idée de mettre en ligne un compte à rebours affichant le temps restant pour atteindre l’échéance fixée. Derrière cette démarche, l’utilisateur déclare qu’il souhaite organiser une fête pour rendre hommage à Python 2 à la conférence annuelle PyCon 2020 qui aura lieu du 15 au 25 avril 2020, aux États-Unis.

Si pour certains la fin du support de Python 2 constitue un moment de réminiscence des bons moments passés, pour d’autres par contre, c’est avec beaucoup de chagrin qu’ils abordent cette page qui tourne. Un utilisateur répondant au pseudonyme d’AlexMax confesse qu’il « ;ne peut pas s’empêcher de se sentir un peu triste ;».


Pour lui, « ;à un niveau fondamental, la migration de 2 à 3 n’était rien de moins qu’un désastre complet, et a complètement tué son enthousiasme pour travailler avec le langage ;». Comme arguments, il avance que les changements apportés dans Python 3 sont de nature à plus donner le mal de tête à ceux qui veulent effectuer la migration qu’à les encourager. Et pour cause, il met en avant les points suivants :

  • la représentation fondamentale des chaînes de caractères a changé pour le pire et non le meilleur ;;
  • la gestion des paquets était et demeure un cauchemar en utilisant une combinaison d’environnements virtuels pip pour installer les dépendances spécifiques au projet ;;
  • comparé à d’autres langages, Python 3 est toujours lent, car il ne valoriserait que la simplicité par convention ;;
  • la bibliothèque asyncio permettant d’écrire du code concurrent en utilisant la syntaxe async/await aurait été ajoutée assez tardivement ;;
  • des indications de type ont été ajoutées au langage en s’appuyant uniquement sur des analyseurs statiques de type hinting au lieu de créer également des vérifications de type d’exécution dans le langage, ce qui aurait été beaucoup plus utile et cohérent, selon l’intervenant ;;
  • jusqu’à présent, il n’y a toujours pas de fonctions lambda anonymes multilignes.


Pour AlexMax, si l’équipe de développement de Python a reporté la première date de fin du support de Python 2.7, et s’il existe encore une forte population qui continue à utiliser Python 2.7, c’est parce qu’il n’y a pas suffisamment d’éléments motivants qui poussent à la migration vers Python 3. Au lieu de travailler à ces lacunes en implémentant de nouvelles fonctionnalités dans Python 3 pour convaincre les développeurs à migrer vers cette version, l’équipe de Python a plutôt agité le bâton en rappelant à chaque fois l’imminence de l’abandon de Python 2.x. Résultat, certains développeurs estiment qu’ils pourraient se tourner plutôt vers d’autres langages.

Pour d’autres utilisateurs par contre, bien que reconnaissant que la transition de Python 2 vers Python 3 n’aurait pas été bien gérée, Python 2 doit mourir. Pour ces derniers, les arguments de difficulté de gestion de paquets ne sauraient être mis en avant, car la gestion des paquets serait super simple avec Python. Pour ceux qui avancent le souci de mise à niveau de leurs projets, certains utilisateurs avancent qu’ils n’ont jamais rencontré de code Python 2 qui n’a pas pu être converti en un temps raisonnablement court en utilisant 2to3, à l’exception des modules d’extension en C, qui nécessitent un certain codage manuel, principalement en raison du changement d’Unicode. Et pour ceux qui ont fait le grand saut vers Python 3, certains avancent qu’ils n’ont jamais eu à regarder en arrière, car Python 3 aurait rendu le langage beaucoup plus cohérent.

Au-delà des réactions controversées relatives à la fin de Python 2.7, l’équipe de Python annonce que bien que le support de Python 2.7 s’arrête officiellement en janvier 2020, la version finale aura lieu après cette date. Ci-dessous le calendrier de la publication de la dernière version de Python 2.7 :

  • 2.7.18 gel du code en janvier 2020 ;
  • 2.7.18 la release candidate sera publiée en début avril 2020 ;
  • 2.7.18 mi-avril 2020.


Après ces dates, ceux qui souhaiteront toujours utiliser Python 2.7 pourront se tourner vers une assistance tierce comme celle fournit avec RHEL qui compterait prendre en charge Python 2.7 jusqu’en 2024.

Source : Python, Python Clock

Et vous ?

Utilisez-vous encore Python 2.7 ;? Pourquoi ;?

Quel sentiment vous laisse la fin du support de Python 2.7 ;?

Êtes-vous enthousiaste ou plutôt triste ;?

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 calvaire
Membre éprouvé https://www.developpez.com
Le 30/12/2019 à 9:20
je suis passé rapidement a python3.x... mais jusqu'a aujourd'hui ce langage m'a toujours gonflé a cause de existence de ces 2 versions :
Distrib linux qui utilise python2 par défaut (j'ai eu beaucoup de difficulté parfois avec des clients ou j'ai du réécrire mon code en python2 parce qu’ils ne pouvaient pas installer python3)
Documentation sur le net ou faut faire attention a chaque fois que c'est bien du python3 (heureusement c'est de moins en moins le cas avec les années)
Des libs qui n'existe plus ou alors des imports a modifier
...

Don la fin du support de python2.7, cela veux dire que les distrib linux vont devoir migrer 100% de leurs scripts et ne plus installer par défaut python2, je suis content... j'aurais aimer que cette fin de support arrive plus tot (disons en 2015)

bon débarra python2, repose en paix... vers silverlight
8  3 
Avatar de stardeath
Membre expert https://www.developpez.com
Le 30/12/2019 à 13:19
Citation Envoyé par Olivier Famien Voir le message
Pour AlexMax, si l’équipe de développement de Python a reporté la première date de fin du support de Python 2.7, et s’il existe encore une forte population qui continue à utiliser Python 2.7, c’est parce qu’il n’y a pas suffisamment d’éléments motivants qui poussent à la migration vers Python 3. Au lieu de travailler à ces lacunes en implémentant de nouvelles fonctionnalités dans Python 3 pour convaincre les développeurs à migrer vers cette version, l’équipe de Python a plutôt agité le bâton en rappelant à chaque fois l’imminence de l’abandon de Python 2.x. Résultat, certains développeurs estiment qu’ils pourraient se tourner plutôt vers d’autres langages.
ça c'est encore une bonne excuse pour ne pas migrer : "il n'y a pas 100% des trucs que je veux dans python 3 (mais qui de toute façon n'était pas là dans python 2) donc je migre pas".

je suis d'accord avec calvaire, python 2 aurait du être mis de coté il y a au moins 10 ans. les gens/entreprises/etc trouveront toujours une bonne excuse pour pas le faire, ils n'ont toujours pas compris les risques à s'y prendre trop tard, qu'ils assument au bout d'un moment.

ps: en relisant c'est encore pire que ce que je pensais :

"la représentation fondamentale des chaînes de caractères a changé pour le pire et non le meilleur ;;" dans python 3 des données sont des collections d'octets et des chaînes de caractères sont des collections de ... caractères, en quoi c'est pire qu'avant où les données étaient des chaînes de caractères? et maintenant on a la prise en charge correcte d'unicode, enfin je ne suis plus obligé d'utiliser une verrue dans mon code pour accéder à des fichiers avec des caractères funkies.

"la gestion des paquets était et demeure un cauchemar en utilisant une combinaison d’environnements virtuels pip pour installer les dépendances spécifiques au projet ;;" ça n'a donc pas changé, je vois pas pourquoi imputer ça à python 3 ...

"comparé à d’autres langages, Python 3 est toujours lent, car il ne valoriserait que la simplicité par convention ;;" pareil, ça se plaint que python 3 a changé trop de trucs, mais là que ça n'a pas changé, ça se plaint pareil ..., en plus tu fais du python pour sa simplicité d'écriture avant tout (enfin je pense), ou alors la personne ne sait pas choisir un langage

"la bibliothèque asyncio permettant d’écrire du code concurrent en utilisant la syntaxe async/await aurait été ajoutée assez tardivement ;;" et donc? c'est tardif donc on migre toujours pas?

"des indications de type ont été ajoutées au langage en s’appuyant uniquement sur des analyseurs statiques de type hinting au lieu de créer également des vérifications de type d’exécution dans le langage, ce qui aurait été beaucoup plus utile et cohérent, selon l’intervenant ;;" toujours pareil, ça reste du python, tu peux pas reprocher à la fois de trop changer et de ne pas assez changer, sinon autant faire un nouveau langage, ça aurait râler pareil néanmoins.

"jusqu’à présent, il n’y a toujours pas de fonctions lambda anonymes multilignes." pareil que ma première version du post, "il n'y a pas 100% des trucs que je veux donc je migre pas"

bref, j'ai la flemme de trouver une conclusion à ce merdier...
7  2 
Avatar de Thomas404
Membre actif https://www.developpez.com
Le 30/12/2019 à 17:22
Tant mieux, cette situation avec 2 versions existantes etait ridicule, et moi je l'aime bien python 3.7
6  1 
Avatar de RPGamer
Membre averti https://www.developpez.com
Le 30/12/2019 à 0:29
Passage déjà fait depuis longtemps et sans grande difficulté. Sans regret, adieux Python 2.
5  2 
Avatar de stardeath
Membre expert https://www.developpez.com
Le 30/12/2019 à 22:34
Citation Envoyé par Pogzy Voir le message
Nim c'est Python en mieux et compilé, donc très rapide...
perso si je fais du python, c'est justement pour, entre autre, me passer d'une étape de compilation, si tu proposes toi d'en rajouter une ...
bref, je vois pas le rapport avec la choucroute.
3  1 
Avatar de SimonDecoline
Expert confirmé https://www.developpez.com
Le 31/12/2019 à 11:09
Citation Envoyé par Pogzy Voir le message
Nim c'est Python en mieux et compilé, donc très rapide...
Oui voilà, Nim est compilé, a un type system évolué avec de la metaprogrammation, transpile vers C/C++/JS, est peu connu et a peu de bibliothèques. Donc en fait Nim n'a à peu près rien à voir avec Python...
2  0 
Avatar de Bktero
Modérateur https://www.developpez.com
Le 13/01/2020 à 19:37
Citation Envoyé par michel92140 Voir le message
jusqu'à ce que des innovations vraiment utiles m incitent à changer, et ce n'est pas actuellement le cas.
J aime bien la simplicité de python2.7, en plus j ai constaté qu'un programme que j'ai écrit en python 3 semblait nettement plus lent.
Peut être une fausse impression ?
Ton profil dit que tu es enseignant. J'espère que n'apprends plus Python 2 à tes élèves, et que tu le gardes pour toi uniquement
3  1 
Avatar de Sve@r
Expert éminent sénior https://www.developpez.com
Le 14/01/2020 à 18:55
Citation Envoyé par michel92140 Voir le message
jusqu'à ce que des innovations vraiment utiles m incitent à changer,
Ou jusqu'à ce que les outils que tu tentes d'utiliser ne soient plus compatibles. Je pensais comme toi il y a seulement un an. Mais voilà, tout d'un coup tu installes un truc et l'interface Python qui va avec le truc ne fonctionne qu'en P3. Et etc etc. Finalement j'ai basculé. Je ne dis pas que ça a été évident mais bon, cela n'a pas été quand-même la difficulté ultime. Et quelque chose me dit que maintenant que P2 est arrêté, tu y viendras beaucoup plus vite que tu ne crois.

Citation Envoyé par michel92140 Voir le message
J aime bien la simplicité de python2.7
Euh... je trouve tout de même que P3 a simplifié pas mal de trucs. object hérité par défaut dans les classes, super() qui peut être maintenant appelé sans paramètre (crois-le ou pas, ça m'a sorti d'une difficulté basée sur une classe privée dont j'héritais et que je n'avais pas solutionné en P2), les viewxxx et iterxxx qui ont disparu des dictionnaires tous maintenant englobés dans xxx (key, values, items). Plus de séparation int/long et unifications des strings toutes unicode. Ca aussi ça m'a fait supprimer quelques lignes quand j'ai porté mes scripts...

Citation Envoyé par michel92140 Voir le message
en plus j ai constaté qu'un programme que j'ai écrit en python 3 semblait nettement plus lent.
Peut être une fausse impression ?
Peut-être parce que ce genre de phrase un peu "dans le flou" ne veut rien dire. "un" programme. Comment as-tu fait tes benchmarks ? Il faisait quoi ce programme ? Il était alone ou utilisait des libs externes ? Il y a plein de circonstances qui font qu'un programme peut être plus lent...
4  2 
Avatar de gallima
Membre averti https://www.developpez.com
Le 30/12/2019 à 8:49
Citation Envoyé par fred1599 Voir le message
Bonjour,

@gallima,

De quelle incompatibilité parles-tu ?
L'incompatibilité la plus importante à mon sens est celle de la représentation des chaînes de caractères. Passer d'une vision orientée 'byte' à une version orientée 'caractère unicode' a cassé tous les programmes qui utilisait les 'string' pour passer de la data raw. Par exemple, il n'est plus possible de mapper directement un 'char*' C vers python (enfin y a une méthode mais ce n'est pas directe). Le changement est si important qu'il est souvent plus simple de réécrire le code totalement. Y a d'autres incompatibilités qui existe, mais j'ai pu la liste en tête, celle-là a été suffisante pour moi.

Edit:
http://www.python-simple.com/python-...ge/python3.php
Le coup du changement de comportement de la division peut aussi rendre des portions de code fausse et ce silencieusement...
4  3 
Avatar de Thorna
Membre éprouvé https://www.developpez.com
Le 30/12/2019 à 15:25
Citation Envoyé par Olivier Famien Voir le message
Alors que la fin du support de Python 2.7 approche à grands pas, certains utilisateurs manifestent leur réjouissance
Euh... Leur joie !
Il faut bien finir par passer à autre chose...
2  1