Python 3.15 obtient sa première version alpha : voici les nouveautés
Agence web » Actualités du digital » Python 3.15 obtient sa première version alpha : voici les nouveautés

Python 3.15 obtient sa première version alpha : voici les nouveautés

La sortie de Python 3.15.0 alpha 1 sur GitHub marque le début de la phase officielle de prévisualisation et de test de la prochaine version fonctionnelle du langage. Cette version alpha donne un premier aperçu des nouveaux changements qui rendront le langage plus rapide et beaucoup plus facile à utiliser.

L'une des nouvelles fonctionnalités les plus importantes et les plus intéressantes de Python 3.15 est le nouveau profileur d'échantillonnage statistique. Il s’agit d’un changement massif qui va rendre la vie de nombreux développeurs beaucoup plus facile. Contrairement aux anciens profileurs déterministes, qui peuvent ralentir votre code en instrumentant chaque appel de fonction, cela n'offre pratiquement aucune surcharge. Cela change la donne pour les problèmes de performances de débogage, en particulier dans les environnements de production.

Ce qui rend ce profileur si génial, c'est qu'il capture périodiquement les traces de pile issues des processus Python en cours d'exécution au lieu d'instrumenter chaque appel de fonction. Vous pouvez l'attacher à n'importe quel processus Python en cours d'exécution, vous n'aurez donc pas besoin de modifier votre code ni même de redémarrer le processus pour voir ce qui se passe. C'est très rapide, avec des taux d'échantillonnage allant jusqu'à 1 000 000 Hz, ce qui en fait le profileur d'échantillonnage le plus rapide pour Python.

Le profileur génère des estimations statistiques du temps passé, fournissant des statistiques d'échantillonnage en temps réel, et est suffisamment flexible pour générer à la fois des statistiques détaillées et des données flamegraph. Il peut même gérer le profilage sensible aux threads, vous permettant de profiler tous les threads ou seulement le principal.

Un autre changement de langage majeur, et honnêtement attendu depuis longtemps, est que Python utilise désormais UTF-8 comme codage par défaut. Ce changement est indépendant de l'environnement de votre système, ce qui constitue un énorme gain en termes de compatibilité. Pour ceux d'entre nous qui ont été confrontés à des erreurs d'encodage compliquées au fil des ans, cela signifie que la plupart des opérations d'E/S sans encodage explicite utiliseront désormais automatiquement UTF-8. Étant donné que UTF-8 est devenu la norme de facto pour représenter du texte sur le Web, dans des formats de fichiers et dans des langages de programmation, cette décision est tout à fait logique.

N'oubliez pas que si vous souhaitez la meilleure compatibilité entre les différentes versions de Python, vous devez toujours fournir explicitement un argument de codage. Cependant, si vous avez vraiment besoin de conserver le comportement précédent, vous pouvez désactiver le mode UTF-8 de Python à l'aide d'une variable d'environnement ou d'une option de ligne de commande.

Python 3.15 apporte également des améliorations intelligentes à ses messages d'erreur. L'interpréteur devient beaucoup plus intelligent, notamment en ce qui concerne les exceptions AttributeError. Si vous essayez d'accéder à un attribut qui n'existe pas, mais qu'un attribut similaire est disponible via un membre de cet objet, le message d'erreur vous donnera désormais une suggestion utile. Par exemple, si vous disposez d'un objet Container avec un objet interne doté d'une propriété Area et que vous appelez par erreur conteneur.area, l'erreur suggérera désormais : « Voulez-vous dire : 'inner.area' ? ».

Au-delà de cela, certains modules standards ont bénéficié d’un joli lifting. Par exemple, les pages de calendrier générées par Calendar.HTMLCalendar prendront désormais en charge le mode sombre et utiliseront la norme HTML5 pour une meilleure accessibilité. De même, difflib.unified_diff() dispose désormais d'un paramètre de couleur facultatif pour obtenir une sortie couleur qui ressemble à ce que vous verriez dans git diff.

Cette première alpha est déjà disponible sur Github et constitue la première étape d'un long chemin de pré-versions menant à la version stable finale. Gardez à l’esprit que la date de sortie finale prévue est encore loin, étant le 1er octobre 2026.

★★★★★