Le créateur de Python propose de geler la syntaxe pour faciliter les migrations
Guido Van Rossum propose de geler la syntaxe de Python pour faciliter la migration des applications et des implémentations vers la version 3 du langage. Un travail de migration parfois ralenti par une base qui tarde à s'aligner sur les évolutions du langage. L'heure de la consolidation a donc sonné, milite le créateur du langage.
Python est-il en train de s'auto-asphyxier ? Dans un message adressé à la communauté, Guido Van Rossum, créateur de Python, désormais employé chez Google, a fait en tout cas part de son intention de geler la syntaxe du langage. Objectif : consolider le langage pour rassurer la communauté. Et concentrer les efforts sur ce qui est essentiel pour l'évolution du langage, les implémentations et la migration des applications vers Python 3.
« Je propose un moratoire sur les modifications apportées au langage », écrit-il sur la liste de diffusion Python-ideas. Guido van Rossum entend ainsi geler la syntaxe pendant plusieurs années - on parle de 2 ou 3 ans. Les évolutions de la grammaire et de la sémantique du langage ne seront tout simplement plus acceptées, poursuit-il en substance. Et de se justifier : « la raison est que les modifications fréquentes du langage perturbent les développeurs des autres implémentations (Jython, IronPython, Pypy et probablement d'autres), avec quasiment aucun, voire aucun bénéfice du tout pour les utilisateurs lambda [...] ».
"Se focaliser sur les performances"
La version 3 de Python, inaugurée en décembre 2008, marque une rupture avec les versions précédentes. Une mise à jour majeure qui générera, inévitablement, des incompatibilités avec les développements existant, mais pour le bien de tous, nous avait déclaré les membres de la communauté, en expliquant qu'il s'agissait d'effacer certaines erreurs de jeunesse.
Notons que les implémentations comme Jython (implémentation Python pour Java) ou IronPython (pour le framework .NET) constituent des rampes de lancement depuis d'autres langages très populaires, comme Java, adossés à de puissantes communautés. Plus globalement, pour les langages plus « petits », comme Python ou Ruby, cela représente un véritable moyen d'attaquer les SI des entreprises, plus critiques. Et constitue un moyen d'étendre la communauté. Comme nous l'expliquait la communauté de Ruby à l'occasion de la manifestation Paris en Rails 2008.
« Il ne s'agit pas de stopper les développements mais de geler les évolutions syntaxiques du langage, commente Christophe Combelles, développeur Python et membre de l'AFPY (Association francophone Python). Cela va permettre d'améliorer le langage à syntaxe constante, donc par exemple de se focaliser sur les performances de la bibliothèque et des applications." En gros, le langage s'écrira de la même façon pendant plusieurs années pour permettre d'harmoniser la base des développements réalisés en Python. Aujourd'hui, si la majeure partie des applications sont écrite en Python 2.5 ou 2.6, il reste toutefois une partie de la base installée en 2.4. Alors que la 2.6 est désormais compatible avec la 3, la 2.4 reste encore sujette à incompatibilités. La décision de Guido Van Rossum, qui pour l'heure est encore discutée par la communauté – et n'est donc pas effective -, s'inscrit dans cette logique : offrir davantage de temps à la communauté pour migrer leur applications vers la 3.0. Et proposer ainsi un écosystème stabilisé (le gel de la syntaxe) pour le réaliser.
La migration vers Python 3 patine
« Le but principal de la communauté de développement devrait être actuellement de populariser l'adoption de Python 3. Il reste des tonnes de travaux à réaliser avant d'être à l'aise avec cette version, principalement avec certaines librairies tierces qui doivent être portées [en priorité, NDLR] vers Python 3, avant d'autres librairies et applications », souligne encore Guido Van Rossum.
Et pour cause, réagit Julien Fache, développeur Python au sein de la société Emancia, spécialisée dans ce même langage : « pour l'instant, Python 3 n'est pas adopté par une majeure partie de la communauté, surtout à cause du manque de portage des librairies tierces, comme le framework Django [qui motorise le serveur d'application du nuage de Google, App Engine, NDLR]. Le problème de performances constaté sur Python 3 entre aussi dans la balance, chose qui pourrait aisément être améliorée si les forces de développement restait concentrées sur le sujet. »