5018Fermer5020
UtherLe 23/08/2023 à 12:02
flanker (./5017) :
Mais il y a eu plein de systèmes pour faciliter la transition, soit en transformant automatiquement ton code Python 2 en Python 3 (outil 2to3) ou le contraire (3to2). Tu pouvais également faire du code compatible Python2 et Python3 simultanément (avec import __futures__ qui ne faisait rien en Python 3 mais patchait en Python2).
Les outils d'aide à la migration c'est vraiment indispensable, mais ça ne résout qu'une partie du problème. Le vrai soucis c'est la cassure nette dans l'écosystème, ce que la majorité des autre langages a réussi à éviter. Le code compatible à la fois Python 2 et 3, si ça peut paraitre une bonne idée a première vue, ça contribue aussi a rendre la transition floue.
Pour prendre l'exemple de Rust que j'ai bien suivi, je trouve qu'ils ont fait un choix plutôt malin. Le même compilateur peut traiter des fichiers Rust en utilisant au choix la syntaxe de l'édition 2015, 2018 ou 2021 et les lier entre eux de manière totalement transparente. Ils ont aussi fait des outils pour faciliter la migration vers les nouvelles éditions et les projets crées par cargo (l'outil standard de build et gestion des dépendances) utilisent par défaut la dernière édition.
Utiliser la dernière édition est on ne peut plus naturel, et dépendre d'une bibliothèque non migrée n’est jamais un frein. Au final, à part quelques débutants qui copient/collent sans réfléchir un bout de code fait pour une ancienne édition dans un projet qui utilise une édition plus récente, il n'y a eu quasiment aucun soucis.

flanker (./5017) :
C'est dangereux de forcer une communauté qui ne te doit rien. De plus, en pratique, à part quelques bibliothèques (surtout liées au réseau, qui manipulent souvent texte et chaînes binaires), la transition a été lente mais pas tant que ça. Ça fait très longtemps (au moins 8-9 ans) que je n'utilise plus que du Python 3.
C'est vrai que c'est pas forcément un bon plan de forcer une communauté, mais entre mettre le couteau sous la gorge pour migrer immédiatement et supporter un double écosystème pendant plus de 11 ans, il y a un juste milieu. Je pense qu'un calendrier de transition sur 3 ans aurait pu passer. Le fait d'avoir une limite clairement définie dès le départ aurait insité la communauté a faire rapidement la transition.
Perso j'ai encore eu des problèmes à cause de scripts de build pas compatible python 3, il n'y a pas si longtemps.