Il y a une dizaine de jours, en annonçant la naissance de Python 3, le créateur de Python, Guido van Rossum,
écrivait que cette version du langage interprété est
' volontairement rétro-incompatible '. Ce qui signifie que les programmes
écrits en Python 2.5 et 2.6 ne peuvent pas fonctionner avec les interprètes de la version 3. Il faudra procéder à une migration du code. Heureusement, un outil baptisé 2to3 est mis à disposition pour simplifier la tâche des
développeurs.Si les créateurs de Python ont pris cette décision, c'est tout simplement parce qu'ils ont souhaité
' décrotter ' ce langage qui existe maintenant depuis près de 18 ans.
' Nous avons corrigé les problèmes connus et enlevé beaucoup d'ancien fatras ', explique Guido van Rossum, dans son article.
Valeur binaire et valeur texte
Parmi les changements les plus importants, figure la distinction nette qui est désormais faite entre valeur binaire et valeur texte que peuvent prendre les variables. Auparavant, il était possible de mixer ces deux types de valeurs, une
conversion étant effectuée à la volée par l'interprète. Cette façon de faire était assez flexible, mais
' le problème, c'est que cela ne marche pas à tous les coups. Et quand il y a un problème, il est difficile de le
corriger. Désormais, les choses sont beaucoup plus claires ', explique Victor Stinner, ingénieur développeur chez INL, un éditeur et intégrateur dans les domaines de l'
open source et de la sécurité.Un changement du même acabit est lié aux nombres entiers. Dans les versions 2.5 et 2.6, il existe des entiers courts et des entiers longs. Là encore, l'interprète effectuait une conversion automatique en cas de besoin. Mais
parfois, le développeur était confronté à des dépassements de capacité assez difficiles à cerner. Désormais, les deux types d'entiers sont fusionnés, simplifiant d'autant l'écriture des programmes.Les responsables de Python ont également fait pas mal de ménage dans la librairie standard, qui est l'une des grandes forces de ce langage, car elle intègre énormément de composants logiciels et facilite le développement. Avec la
version 3, beaucoup d'anciens modules ont été enlevés, d'autres ont été fusionnés. L'objectif étant de proposer une librairie plus cohérente et plus structurée.
L'adoption ne se fera pour tout de suite
Bien que toutes ces améliorations soient très sympathiques, il y a peu de chances que l'adoption de la version 3 se fasse rapidement. Tout d'abord en raison du manque de rétro-compatibilité. Même si elle est relativement simple à
mettre en place, elle apporte toujours une dose de risque. Les entreprises vont donc appliquer le vieux principe informatique
' pourquoi changer quelque chose qui marche ? '. D'autant que les
versions 2.5 et 2.6 subsisteront encore pendant des années.Par ailleurs, la version 3 n'est pas encore optimisée et abaisse les performances de calcul de 10 % par rapport aux versions précédentes. Les utilisateurs attendront donc au moins pendant un an, avant d'utiliser Python 3
en production.Enfin, Python 3 tout seul n'est pas forcément très utile. Il faut aussi que les principales extensions du langage se mettent au diapason de la nouvelle version, telles que Zope pour le développement Web, SciPy pour l'ingénierie,
Twisted pour la programmation réseaux, etc. Cette adaptation risque de prendre un peu de temps, vu le ménage qui a été fait. Zope, comme
l'explique le consultant spécialisé Cameron Laird, a par exemple mis six mois pour implémenter la version 2.6...
Votre opinion