Pyston: La herramienta que acelera las aplicaciones web en Python

Cuando Kevin Modzelewski y sus colegas en Dropbox comenzaron a desarrollar Pyston en 2014, tenían un objetivo muy simple: reducir los costos de ejecutar código Python en los servidores de Dropbox, haciendo que el código en sí fuera más rápido.

"Estábamos creciendo exponencialmente, por lo que nuestros costos de servidor también crecían exponencialmente", dice Modzelewski. "Si pudiéramos hacer que Python se ejecutara más rápido, gastaríamos menos dinero en ejecutar Python".

La iniciativa original de reducción de costos en Dropbox se convirtió en un proyecto más grande para Modzelewski cuando la empresa dejó de utilizar Python en 2017 y canceló el proyecto Pyston.

Se dio cuenta mientras trabajaba en el lenguaje de programación que existía una fuerte demanda de un Python más rápido entre la comunidad de desarrolladores y, si bien había muchas herramientas para mejorar el rendimiento en aplicaciones más pequeñas, no existían herramientas diseñadas para aplicaciones grandes de lógica empresarial, como Dropbox.

"Hay muchas herramientas disponibles para optimizar la ejecución de Python, pero ninguna era adecuada para el caso de uso de Dropbox", dice Modzelewski. "Esta era un área del mercado de Python donde se invertía mucho dinero, pero no se estaban desarrollando muchas herramientas para ayudar. Estaba insatisfecha".

Hoy en día, Pyston se encuentra en la versión 2.2 y se ha convertido en un proyecto de código abierto, con Modzelewski y el desarrollador Marius Wachtler liderando el proyecto como cofundadores. La última implementación promete una mejora del rendimiento del 30% respecto a Python 3.8.8, y una de sus principales ventajas es que los desarrolladores pueden simplemente implementar sus aplicaciones Python en Pyston y comenzar a usarlas sin necesidad de reescribir todo su código. Además, es una "cosa completamente separada" de lo que Modzelewski y sus compañeros desarrollaron para Dropbox hace siete años.

Dominando el pasado: los lenguajes de programación olvidados que aún son vitales para las grandes empresas

"Queremos que puedas implementar Pyston en lugar de Python normal y no tener que hacer nada más", dice Modzelewski. "En ese momento, la base de código de Dropbox tenía millones de líneas de código. No era factible reescribir todo en otro lenguaje o anotarlo por completo".

Índice de Contenido
  1. Una versión más rápida y agresiva de Python
    1. El futuro de Pyston

Una versión más rápida y agresiva de Python

El objetivo inicial de Pyston era crear una implementación de Python que pudiera acercarse al rendimiento de los lenguajes de programación de sistemas tradicionales como C++.

Esto implicaba eliminar algunas características menos utilizadas de CPython, como las verificaciones de depuración, y utilizar técnicas de compilación "just-in-time" (JIT), similares a las utilizadas en JavaScript, C# y Java, para aumentar la velocidad de ejecución.

Sin embargo, a lo largo de los años, se agregaron tantas características a Python que resultaba difícil discernir cuáles eran importantes y cuáles podían eliminarse, según Modzelewski: "Considero que tengo un buen conocimiento de Python, pero había varias características de las que no sabía hasta que las tuve que implementar yo mismo. Pensé: 'Nunca había oído hablar de esto, nunca lo había leído, nunca supe de alguien que lo haya usado'".

La única forma de determinar qué características eran útiles para los desarrolladores y cuáles no, era comenzar a eliminarlas y esperar recibir comentarios. "Queríamos empezar a eliminar algunas de ellas para obtener comentarios de las personas que dijeran: 'Oye, en realidad uso esa característica y la eliminaste'", explica Modzelewski.

Este enfoque agresivo de optimización ha permitido que Pyston obtenga mejoras significativas en rendimiento en comparación con CPython. Aunque se menciona oficialmente una mejora del 30%, Modzelewski sugiere que esta es una estimación conservadora debido a que Pyston utiliza pruebas de rendimiento más realistas que reflejan mejor la experiencia de los desarrolladores con Pyston.

Cómo las Fusion Teams están impulsando el desarrollo de aplicaciones con Microsoft Power Platform

"Medimos el rendimiento de manera bastante diferente a como lo hacen otros proyectos, por lo que nuestro 30% no es directamente comparable. Si midieramos el rendimiento de la misma manera que otros, nuestro número sería más alto", afirma.

El futuro de Pyston

El creador de Python, Guido van Rossum, ha reconocido que Python es "grande y lento", lo cual ha dificultado su adopción en el desarrollo de aplicaciones móviles y navegadores web. El lenguaje sigue siendo principalmente utilizado en ciencia de datos, aprendizaje automático y servicios web backend, aunque este último está cada vez más dominado por JavaScript y el superset de Microsoft, TypeScript.

Pyston, por otro lado, se enfoca específicamente en aplicaciones web. Si bien existen muchas herramientas para acelerar el código Python, como la implementación rival PyPy, Modzelewski explica que estas no suelen funcionar bien para aplicaciones web debido a la cantidad de dependencias.

Es precisamente esta brecha en el mercado la que Pyston pretende aprovechar. "Queremos convertirnos en la forma preferida de acelerar las aplicaciones web en Python, es decir, los componentes que se ejecutan en los servidores de una empresa", agrega.

Modzelewski cree que Pyston puede seguir siendo competitivo a pesar de las mejoras en la velocidad de las nuevas versiones de Python. "Hemos sido mucho más agresivos que Python en cuanto a las cosas que estamos dispuestos a hacer", señala, resaltando que el compilador JIT de Pyston ofrece una ventaja en términos de las herramientas que tiene a su disposición. "Se limitan en lo que están dispuestos a agrupar juntos".

Actualmente no se sabe con certeza cuántos desarrolladores están utilizando Pyston en la práctica. El proyecto sin duda cuenta con seguidores entusiastas y usuarios dedicados, muchos de los cuales participan en el canal de Discord de Pyston para informar errores o compartir sus experiencias con la herramienta.

El objetivo principal de Kubernetes en las empresas no es la portabilidad

Modzelewski afirma que el objetivo principal del proyecto es construir algo que sea valioso para las personas. "Creo que en este espacio es muy fácil construir algo increíblemente interesante desde el punto de vista técnico, intelectualmente muy interesante, pero que no sea un producto útil para los usuarios...Estamos adoptando un enfoque de producto en esto, queremos construir algo útil, y creo que lo estamos logrando".

Pyston aún se encuentra en una fase de crecimiento. En el futuro, el equipo espera poder abordar los problemas de Python con la multihilo, una técnica en la que un conjunto de código se divide entre varios núcleos de procesamiento, aunque Modzelewski señala que esto no está en la hoja de ruta inmediata del lenguaje.

"A largo plazo, queremos que nuestras compensaciones sean lo suficientemente fáciles de aceptar como para que mucha gente nos use. Hay muchas herramientas de optimización especializadas para Python que la mayoría de las personas no suelen utilizar", comenta.

"Mi sueño para el proyecto es que simplemente se convierta en un consejo estándar: 'Hey, más te vale usar Pyston'".

La importancia de DevOps y cómo está evolucionando en el futuro próximo

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Desarrollo, allí encontraras muchos artículos similares a Pyston: La herramienta que acelera las aplicaciones web en Python , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.