Après de nombreuses années de développement et d'amélioration, la version 3.0 de Cython, la bibliothèque Python qui permet de compiler le code Python en C, arrive enfin. L'objectif principal de Cython est de faciliter l'écriture d'extensions C pour Python, que ce soit pour gagner en rapidité ou pour créer des interfaces pratiques avec les bibliothèques C. À bien des égards, Cython 3 nettoie et modernise Cython. D’un côté, le compilateur abandonne la prise en charge de Python 2, obsolète depuis longtemps, et de l’autre il s’enrichit du support des dernières fonctionnalités du langage (jusqu'à la version 3.12 de Python) et étend l'utilisation du « mode Python pur ».
Avec le mode Python pur, les développeurs Python peuvent utiliser leurs outils existants de linting et d'analyse de code Python sur Cython. Historiquement, ce dernier utilisait sa propre syntaxe, un hybride de la syntaxe Python et de la syntaxe de déclaration de type C, ce qui le rendait difficile à dépanner avec les outils Python. Au fil du temps, Cython a commencé à proposer une syntaxe alternative appelée « mode Python pur », entièrement compatible avec la syntaxe Python conventionnelle. La grande majorité des fonctions Cython sont désormais exposées en « mode Python pur », y compris les fonctions d’appel des bibliothèques C externes.
Un lien plus fort avec NumPy
Autre apport majeur de cette version : le support de NumPy. Cela fait longtemps que Cython et NumPy fonctionnent bien ensemble, notamment pour écrire des fonctions Cython qui s'accrochent directement et nativement aux fonctions et structures de données NumPy. La troisième itération ajoute (entre autres) la possibilité d'écrire des ufuncs NumPy directement en Cython, de sorte qu'une simple fonction numérique écrite en Cython peut être rapidement et facilement appliquée à l'ensemble du contenu d'une structure de données NumPy.
Les éléments internes de Cython ont également été retravaillés pour mieux accompagner les changements en cours dans les éléments internes de Python. Par exemple, la dernière « API limitée » pour Python expose un sous-ensemble stable garanti des API de Python, spécifiquement pour le type de tâche souvent réalisée par Cython pour s'accrocher à l'interpréteur Python. Cython 3 offre le support préliminaire, mais croissant de l'API limitée. À long terme, cela signifie que les modules d'extension Cython construits pour une version de Python fonctionneront dans les versions futures de Python sans avoir besoin d'être recompilés.
Les premières versions de Cython 3 sont apparues en même temps que Python 3.8 il y a trois ans. Aucune date ferme ou objectif de version n'a été fixé pour la finalisation de Cython 3. Mais l'équipe de développement derrière ce projet encourage une large utilisation des versions alpha et bêta de Cython 3, d’autant que le projet a suivi le rythme des récentes fonctionnalités et des changements internes de chaque version de Python.
Le Python, quelle gaspillage de ressources et d'énergie !
Signaler un abus