Ce qui se passe
EVE Online a annoncé le début de sa migration vers Python 3. Les premiers changements, testés sur le serveur public d'essai Singularity, sont déjà déployés en production.
Le contexte donne la mesure du chantier. Le jeu est lancé en 2003 sur Stackless Python, une variante dont les tasklets légers permettaient à un seul nœud serveur de gérer des milliers de joueurs simultanés — l'éditeur en est d'ailleurs devenu l'un des principaux contributeurs. Dernière montée de version : Stackless Python 2.7, en 2010. Depuis, rien. Python 2.7 est en fin de vie depuis 2020.
Seize ans sur la même version d'un langage, pour une base de code qui en compte vingt-trois.
Pourquoi ils bougent maintenant
Les raisons avancées ne sont pas idéologiques, et elles sont transposables à n'importe quel projet qui traîne une version :
- La performance. Les versions récentes de Python 3 ont apporté les plus gros gains de vitesse de l'histoire du langage. L'équipe reste prudente : il est « trop tôt pour dire » ce que cela donnera concrètement.
- L'écosystème, surtout. Bibliothèques, débogueurs et profileurs modernes sont écrits pour Python 3. Chaque année passée sur l'ancienne version en met davantage hors de portée — et la formule employée est la bonne : cela veut dire maintenir soi-même ce que l'écosystème fournirait gratuitement, au lieu d'améliorer le jeu.
- Le langage lui-même : un type de chaîne unique et cohérent, ce qui fiabilise la localisation ; des entiers sans limite de taille ; un système de classes unifié, débarrassé du comportement hérité des vieilles classes.
La difficulté réelle
Elle n'est pas dans la syntaxe. Chaque personnage, chaque point de compétence,
chaque objet en hangar, chaque ISK en portefeuille a été écrit par du code
Python 2 — et tout doit se relire à l'identique sous Python 3. C'est un
problème de sérialisation et de compatibilité de données, pas de print.
Ce qui rend l'annonce crédible plutôt qu'optimiste : le moteur Carbon tourne déjà sur Python 3 moderne dans EVE Frontier, l'autre jeu du studio. Cette migration-là a franchi douze versions mineures d'un coup, soit seize ans d'évolution du langage en un seul projet.
Ce que ça change pour vous
Peu de chose directement, sauf si vous jouez. Mais le cas est instructif à deux titres.
D'abord le critère de réussite affiché, qui est le bon pour toute migration d'infrastructure : « complètement imperceptible, sauf quand quelque chose tourne mieux ». Une migration réussie ne se voit pas.
Ensuite l'arithmétique de la dette. Le studio explique que la migration ne s'est jamais justifiée tant que l'existant fonctionnait — et il fonctionnait, seize ans durant. Ce qui a changé n'est pas la fiabilité de Python 2, c'est le coût d'opportunité : le temps passé à réimplémenter ce que l'écosystème offre ailleurs. C'est presque toujours cet argument-là, et non le risque, qui finit par débloquer une montée de version repoussée.
À retenir
« Ça marche » est une raison valable de ne pas migrer — jusqu'au moment où la facture n'est plus le risque, mais tout ce qu'on ne peut plus utiliser. Si vous portez une version figée quelque part, c'est ce calcul-là qu'il faut poser, pas celui de la panne.
Source : EVE Online