Por alguna razón que me es incomprensible, de pronto un lenguaje cobra popularidad. Este es quizás el caso de Python, que probablemente por las estructuras de datos que usa, el hecho de ser un intérprete, etcétera, se ha puesto de moda en muchos ámbitos. Por ejemplo, en la Facultad de Ciencias de la UNAM se usa ya extensivamente.

Pues bien, ahora sale Brython, que es un compilador der Python a Javascript, por lo que Python entonces parece ser un lenguage de scripts para el lado del cliente. Brython parece ser que viene de Browser Python, pero sin importar por qué le pusieron ese nombre, es otro ejemplo de usar Javascript como si fuese el lenguaje ensamblador moderno. En este caso, sin embargo, el enfoque es ligeramente diferente. La idea es que se puede escribir Python en el navegador como si éste fuese un lenguaje soportado por el propio navegador.

Por ejemplo,
<script type="text/python"> def echo():    alert("Hello %s !" %doc["zone"].value) </script>

Se puede ver esto como un script nativo. Puede verse como si Python pudiese usarse con sólo un par de extensiones que le permiten trabajar en el medio ambiente del navegador. ”

Pero ¿cómo trabaja? ¿cómo se incorpora un nuevo lenguaje a cualquier navegador? La respuesta no es difícil. La biblioteca de Brython se carga y solamente hay que incluir una llamada a brython(), de la siguiente forma:

<body onload="brython()"></body>

Lo que hace esto es localizar los tags del script de Brython y reemplazarlos por los tags de los scripts de Javascript conteniendo el código en Javascript equivalente. Esto significa que Brython compila su código a Javascript cuando se carga la página. Sin duda un método ingenioso en donde el único costo real es que toma tiempo esta “compilación”. Ahora bien, si esto no es aceptable, se puede compilar el código fuera de línea e insertar el código generado en su equivalente de Javascript. Esto tiene no obstante, una dificultad extra: depurar el código en Javascript (siendo programador de Python), puede resultar un dolor de cabeza extra.

Más de uno pensará que no hace mucho sentido compilar Python a Javascript, pues parecen lenguajes muy diferentes. La realidad es que no lo son. De hecho, son más similares de lo que pensamos: ambos no usan tipos, tiene arreglos asociativos como sus tipos de datos fundamentales y además, ambos implementan objetos dinámicos.

Cabe decir que Brython no es una implementación al 100% de Python, pero sin embargo, es un buen subconjunto del lenguaje, incluyendo generadores, clases, etcétera. Usa además DOM, SVG, AJAX y acceso a los objetos de Javascript.

El proyecto apenas está arrancando, pero con la ayuda de la creciente comunidad de Python, probablemente tendrá muchos adeptos.

Referencia:

Brython