Después de muchos años de desarrollo y mejora, la versión 3.0 de Cython, la biblioteca Python que le permite compilar código Python en C, finalmente está aquí. El objetivo principal de Cython es facilitar la escritura de extensiones C para Python, ya sea para ganar velocidad o para crear interfaces convenientes con bibliotecas C. En muchos sentidos, Cython 3 limpia y moderniza Cython. Por un lado, el compilador abandona el soporte para Python 2, que ha quedado obsoleto durante mucho tiempo, y por otro lado se enriquece con soporte para las últimas funciones del lenguaje (hasta la versión 3.12 de Python) y amplía el uso de “Python puro”. modo".

Con el modo Pure Python, los desarrolladores de Python pueden utilizar sus herramientas de análisis y linting de código Python existentes en Cython. Históricamente, este último usaba su propia sintaxis, un híbrido de la sintaxis de Python y la sintaxis de declaración de tipo C, lo que dificultaba la resolución de problemas con las herramientas de Python. Con el tiempo, Cython comenzó a ofrecer una sintaxis alternativa llamada "modo Python puro", que era totalmente compatible con la sintaxis convencional de Python. La gran mayoría de las funciones de Cython ahora están expuestas en "modo Python puro", incluidas las funciones que llaman a bibliotecas C externas.

Un vínculo más fuerte con NumPy

Otra adición importante a esta versión: soporte para NumPy. Cython y NumPy han trabajado bien juntos durante mucho tiempo, especialmente para escribir funciones de Cython que se conectan directa y de forma nativa a funciones y estructuras de datos de NumPy. La tercera iteración añade (entre otras cosas) la posibilidad de escribir ufuncs NumPy directamente en Cython, de modo que una función numérica simple escrita en Cython se pueda aplicar rápida y fácilmente a todo el contenido de una estructura de datos NumPy.

Las partes internas de Cython también se han reelaborado para soportar mejor los cambios continuos en las partes internas de Python. Por ejemplo, la última "API limitada" para Python expone un subconjunto estable garantizado de las API de Python, específicamente para el tipo de tarea que Cython realiza a menudo para conectarse al intérprete de Python. Cython 3 ofrece soporte preliminar, pero creciente, para la API limitada. A largo plazo, esto significa que los complementos de Cython creados para una versión de Python funcionarán en versiones futuras de Python sin necesidad de volver a compilarlos.

Las primeras versiones de Cython 3 aparecieron junto con Python 3.8 hace tres años. No se ha fijado una fecha firme ni un objetivo de lanzamiento para la finalización de Cython 3. Pero el equipo de desarrollo detrás de este proyecto fomenta el uso generalizado de las versiones alfa y beta de Cython 3, especialmente porque el proyecto siguió el ritmo de las características recientes y los cambios internos en cada versión de Python.