Pyston, tecnología Dropbox


Pyston es una implementación de Python que tiene como objetivo ser altamente compatible y de alto rendimiento. Utiliza técnicas JIT modernas y es compatible de forma nativa con muchos módulos de extensión CPython C. La versión 2 es actualmente de código cerrado, pero puede encontrar el código fuente antiguo v1 en la etiqueta v1.0 en este repositorio.

Pyston, un proyecto de Dropbox que tiene como objetivo abordar ese compromiso. Pyston, un compilador de código abierto (con licencia de Apache) para Python, utiliza la infraestructura del compilador LLVM para ejecutar Python mediante la compilación justo a tiempo, o JITing, una técnica empleada en la máquina virtual Java. La iteración más reciente de Pyston, la versión 0.2, aún está lejos de estar lista para producción, pero está tomando forma rápidamente.

Pyston fue diseñado originalmente por un equipo de ingenieros de Dropbox cuyo objetivo declarado era “producir una implementación de Python de alto rendimiento que pueda llevar a Python a dominios dominados por lenguajes de sistemas tradicionales como C ++“. El plan era utilizar LLVM para ayudar en este proceso.

Las aplicaciones del lado del cliente de Dropbox están escritas en Python, y si bien el rendimiento de Python ha estado tradicionalmente a la zaga de otros lenguajes, muchos desarrolladores encuentran a Python lo suficientemente rápido para muchas aplicaciones comunes que no son computacionalmente intensivas. Además, en muchos casos están dispuestos a cambiar la rápida ejecución de C ++ o Java por la iteración de desarrollo generalmente más rápida de Python. (Guido van Rossum, creador de Python, él mismo ha señalado estos puntos).

La versión original de Pyston simplemente sentó las bases como una forma de hacer que los programas básicos de Python se compilaran con LLVM. Faltaban muchas características de Python, incluida la compatibilidad con la API C nativa de Python, una forma de que Python se comunique directamente con el código C y, por lo tanto, transfiera funciones que deben ejecutarse a las velocidades nativas de C. Incluso esa versión primitiva de Pyston era más rápida que la implementación CPython de referencia del lenguaje, afirmaron los desarrolladores de Pyston.

La versión 0.2 de Pyston agrega la API C, junto con otras funciones nuevas que acercan mucho a Pyston a ser utilizable para el trabajo de producción (aunque eso todavía está muy lejos). Excepciones, herencia y metaclases, lambdas y cierres, soporte para subprocesos múltiples y una gran cantidad de otros elementos específicos de Python ahora están funcionando, según el equipo de Pyston.

Una medida del progreso es que a partir de la versión 0.2, muchos puntos de referencia de PyPy se pueden ejecutar sin modificaciones. PyPy es otro compilador basado en JIT para Python que produce resultados más rápidos, a veces por órdenes de magnitud, que la implementación de referencia de Python. Sin embargo, Pyston funciona de manera diferente a PyPy, por lo que muchas de las lecciones aprendidas con PyPy no se pueden asignar a hacer que Pyston se ejecute más rápido.

El siguiente paso para Pyston, según sus desarrolladores, es mejorar aún más el rendimiento: optimizar la metodología de recolección de basura, deshacerse de sus fugas de memoria y, en general, hacer que Pyston esté más cerca de funcionar como un reemplazo directo de la generación existente de Motores Python.

Queremos seguir creando cursos gratuitos en nuestro canal de YouTube. Solo te pedimos tu ayuda para crecer más. Suscríbete por favor. (Cursos, talleres y charlas gratis para ti).

Ernesto Mota
Nací en el d.f., sigo siendo defeño, hoy radico en la hermosa ciudad de Cuernavaca, Morelos, soy Ing. en Sistemas computacionales, con un posgrado en Tecnologías de información, Doctorando en ambientes virtuales de aprendizaje y realidad aumentada, Tecnólogo es mi categoría laboral, y mi linea de investigación es la realidad aumentada aplicada a nuevos entornos de aprendizaje.

Últimos artículos

a

Publicasciones relaciodadas