Hace unos días, la cuenta oficial en Twitter de PyPI (Python Package Index), el repositorio de software vinculado al lenguaje Python, publicaba la siguiente imagen, mostrando el nivel de consumo de CPU resultante de la ejecución de Gunicorn (un servidor web basado en Python), justo antes y después de ser actualizado a la nueva versión de Python, la 3.11.
Poco después, Dustin Ingram (el mantenedor de PyPI) publicaba una versión suavizada del gráfico (derecha) que dejaba aún más claro el tipo de mejora que representaba la nueva versión de Python en lo referente al consumo de CPU.
Básicamente, una reducción a la mitad del uso de CPU; y, con ello, del uso de energía eléctrica, ahora que se ha convertido en un tema de debate gracias a la crisis energética y a la polémica en torno a las criptomonedas. De hecho, ya hay quien dice que Python puede haber hecho más por el ahorro energético que el tan debatido y publicitado ‘Merge’ de Ethereum.
La recepción entre los usuarios del subreddit de Python deja claro también lo bienvenida que es esta actualización:
«Esto pondrá fin a las argumentaciones de que ‘las aplicaciones Python son fáciles de escribir, pero funcionan mal'».
«Por regla general, nunca me muevo a otra versión menor de Python hasta que no se publica la siguiente versión menor. […] ¡Nunca antes había estado tan tentado a actualizar antes de eso! Bravo a todos los que contribuyeron a este lanzamiento».
También son varios los usuarios que mencionan su dependencia de alguna librería Python que aún no cuenta con soporte para la nueva versión (como la popular PyTorch, vinculada a tareas de IA) como la única razón para no haber actualizado ya a la deseada Python 3.11.
El ahorro de CPU no es importante sólo por lo que puedes ahorrar ejecutando una aplicación en tu PC: piensa en millones de servidores, por todo el mundo, ejecutando en todo momento software basado en Python
-Y también más rápido
Hoy mismo se ha lanzado la versión 3.11.1, y entre las novedades de la misma recopiladas en la documentación oficial, se encuentra la siguiente afirmación:
«Python 3.11 es entre un 10% y un 60% más rápido que Python 3.10. En promedio, medimos una aceleración de 1.25x en la suite estándar de benchmarking».
«¿Cómo debo escribir mi código para que haga uso de estas optimizaciones de velocidad?», se pregunta retóricamente la documentación en una sección FAQ, antes de dejarnos claro que no tendremos que cambiar en lo más mínimo nuestro código: basta con seguir las indicaciones habituales de buenas prácticas de Python.
Eso sí, para quien no observa ninguna aceleración al cambiar a Python 3.11, la documentación también deja claro que no todo el código estará se verá afectado por estas mejoras de rendimiento. Así, si la mayor parte de nuestro código está implicado en operaciones de E/S, o si ya hace la mayor parte de sus cálculos utilizando bibliotecas como numpy, no observaremos cambios.
Ya el pasado mes de junio escribíamos sobre la versión Beta 1 de Python 3.11, y avisábamos de que el primer vistazo a la misma ya apuntaba en esta misma dirección. ¿Qué ha cambiado en Python? Pues que, desde hace un año, Microsoft viene financiando el proyecto Faster CPython, cuyo objetivo es, nada menos, que el de terminar doblando la velocidad del código Python en próximas versiones.