Python puede ser el lenguaje de programación más popular del mundo, pero a diferencia de otros JavaScript pioneros, no se puede ejecutar código Python en el navegador.

En PyCon 2022, la conferencia anual de su comunidad de “Pythonistas” (y la primera reunión en persona para contribuyentes de Python desde 2019 debido a la pandemia), los desarrolladores revisaron la idea de ejecutar código Python en el navegador.

En el navegador, Python no admite la compilación en el tiempo de ejecución WebAssembly (Wasm), un estándar de aplicación web IC3 ampliamente compatible que compila código escrito en Rust, C, C++ y Go en un formato binario, lo que permite que las aplicaciones web actúen más. como una aplicación de escritorio fuera del navegador.

Pero en PyCon 2022, el desarrollador de CPython Christian Heimes y su compañero colaborador Ethan Smith detallaron cómo permitieron que la rama principal de CPython se compilara en WebAssembly. CPython, abreviatura de Core Python, es la implementación de referencia de la que se derivan otras distribuciones de Python.

VER: El desarrollador de Rocky Linux obtiene una financiación de 26 millones de dólares para impulsar el código abierto empresarial

CPython ahora realiza compilaciones cruzadas con Wasm utilizando Emscripten, una cadena de herramientas que compila proyectos escritos en C o C++ en tiempos de ejecución de Node.js o Wasm.

La Python Software Foundation destacó el trabajo en una publicación de blog: “Python se puede ejecutar en muchas plataformas: Linux, Windows, Apple Macs, microcomputadoras e incluso dispositivos Android. Pero es un hecho ampliamente conocido que, si desea que el código se ejecute en como navegador, Python simplemente no sirve; simplemente tendrás que recurrir a JavaScript”, señala. “Ahora, sin embargo, eso puede estar a punto de cambiar”.

Si bien la Fundación señala que la compilación cruzada con WebAssembly todavía es “altamente experimental” debido a la falta de módulos en la biblioteca estándar de Python, PyCon 2022 demostró un creciente interés de la comunidad en hacer de Python un mejor lenguaje para el navegador.

Algunas personas en la comunidad Python se han preguntado si Python se ha acercado demasiado hacia la ciencia de datos, lo que podría socavar su utilidad como lenguaje de programación de propósito general. Además del navegador, el otro punto débil de Python es que ejecutarse en dispositivos móviles, o incluso en cualquier aplicación (incluso en un escritorio), requiere una interfaz gráfica de usuario.

Pero incluso en el campo de la ciencia de datos, existe el deseo de hacer que Python sea más amigable para los navegadores. Peter Wang, cofundador y director ejecutivo de Anaconda, el creador de la popular distribución Anaconda Python para ciencia de datos, dijo anteriormente a que era “increíblemente incómodo usar Python para construir y distribuir cualquier aplicación que tenga interfaces gráficas de usuario reales”.

La firma de Wang mostró una nueva herramienta en la que han estado trabajando para llevar Python para la ciencia de datos al navegador.

Wang anunció PyScript en PyCon 2022 y lo describió como “un sistema para entrelazar Python en HTML (como PHP)”. Permite a los desarrolladores escribir y ejecutar código Python en HTML y llamar a bibliotecas Javascript en PyScript. Este sistema permite escribir un sitio web completamente en Python.

PyScript se basa en Pyodide, una adaptación de CPython o una distribución de Python para el navegador y Node.js que se basa en WebAssembly y Emscripten.

Pyodide es un desarrollo interesante para Python. Era parte del proyecto Mozilla Iodide, ahora abandonado, y creado en 2018 por Michael Droettboom. A partir de 2021, Pyiodide sigue siendo un proyecto independiente de código abierto. Está dirigido a usuarios de ciencia de datos y permite realizar trabajos de modelado visual y estadístico en el navegador utilizando bibliotecas clave de ciencia de datos de Python, como Numpy, Pandas y Matplotlib.

“Pyodide hace posible instalar y ejecutar paquetes de Python en el navegador con micropip. Se admite cualquier paquete de Python puro con una rueda disponible en PyPI”, afirma el proyecto Pyodide. Básicamente, compila código Python y bibliotecas científicas en WebAssembly utilizando Emscripten.

VER: El desarrollo de software está cambiando nuevamente. Estas son las habilidades que buscan las empresas

El proyecto Pyodide lanzó la versión 0.20 hace un mes. Se actualizó a Python 3.10, la versión principal más reciente de Python, y ofrece mejoras de velocidad en Firefox y Chrome.

La Python Software Foundation señaló: “PyScript está actualmente construido sobre Pyodide, un proyecto de terceros que lleva Python al navegador, en el cual el trabajo comenzó antes de que Heimes comenzara su trabajo en la rama principal de CPython. Con las modificaciones de Heimes a Python 3.11, esto el esfuerzo sólo será más fácil.”

En PyCon 2021, el creador de Python, Guido van Rossum, reconoció que Python era excelente para el desarrollo web back-end, pero cedió el front-end a JavaScript. ¿Por qué sobrecargar Python en campos bien atendidos por otros lenguajes cuando Python puede centrar sus fortalezas en la ciencia de datos?

“No me importa que los diferentes lenguajes tengan objetivos diferentes. Quiero decir, nadie le pregunta a Rust cuándo se puede escribir Rust en el navegador; al menos ese tampoco parecería un tipo de objetivo útil para Rust. Python debería centrarse en las áreas de aplicación en las que es bueno y para la web, que es el backend, y para el procesamiento de datos científicos”, dijo van Rossum en ese momento.