Hello,
Que pensez-vous des nouveautés introduites par Python 3.14 ?
Toutes les nouveautés sont là :
https://docs.python.org/3.14/whatsnew/3.14.htmlC'est la première question à laquelle j'ai envie de répondre, car je le subis régulièrement au travail lors de mes revues de code...
La
PEP 750 introduit les t-strings, et ça c'est une fonctionnalité qui va nous changer la vie, elle a un réel intérêt, et même si syntaxiquement on y voit une ressemblance avec les f-strings, leur comportement est fondamentalement différent. Au lieu de produire une chaîne de caractères finale, ils évaluent en un objet immuable string.templatelib.Template.
Cet objet Template sépare les parties littérales de la chaîne des valeurs interpolées, qui sont stockées sous forme d'objets Interpolation. Cette séparation structurelle est la clé de leur puissance : une fonction recevant un objet Template peut inspecter, valider, nettoyer ou transformer les valeurs
avant de générer la chaîne finale. Cette feature est vraiment top, plus de vulnérabilités d'injection !
Une f-string comme f"SELECT * FROM users WHERE name = '{user_input}'" est intrinsèquement dangereuse. En revanche, une fonction utilisant une t-string t"SELECT * FROM users WHERE name = {user_input}" peut recevoir l'objet Template, extraire user_input de template.values et le transmettre de manière sécurisée à un pilote de base de données en tant que requête paramétrée, neutralisant ainsi le risque d'injection SQL.
Que pensez-vous du nouveau mode Free-Threaded de Python 3.14 ?
Ensuite je parlerai juste du free-threaded, qui est à mon sens discutable... parce-qu'il impose encore plus de choix au développeur quand à la création d'une application, à savoir, est-ce que je vais avoir besoin de multithreads ou pas ?
Si je n'en ai pas besoin, alors ne pas utiliser le mode free-threaded,
Le code monothread subit une pénalité de performance de 5 à 10 % dans cette version.
L'utilisation de la mémoire est également plus élevée, d'environ 15 à 20 %.Si vous faîtes du multithreads, alors vous ferez du vrai multithreads non bloqués par le GIL et ce mode fera de manière
plus performante ce qu'il a à faire !
Quel est votre avis sur le sujet ?
Malgré ces améliorations, CPython reste nettement plus lent que PyPy pour le code Python pur et gourmand en CPU. Sur un benchmark algorithmique simple, PyPy s'est avéré être
environ 20 à 25 fois plus rapide que la meilleure configuration de CPython 3.14. Le JIT mature de PyPy est particulièrement efficace pour des optimisations que le JIT de CPython ne peut pas encore réaliser.
3 |
0 |