Sunday, December 16, 2012

Python en todo lugar

Ordenadores, móvil, navegadores

Empecé a programar ordenadores con el lenguaje Basic y Turtle (Logo) y poco después con Assembler, Pascal, C, C++ y un montón de otros lenguajes. En los anos 90, seguí con Perl, Java y Javascript (y varios otros a través los años como PHP, C#, Python, Ruby).

La mayoría del código que estoy escribiendo ahora es en Python, pero cuando es una cuestión de web, siempre hay que hacer algo en Javascript. Casi todas las paginas en la red incluyen <script...>.

type=text

En el pasado (mas de 10 anos atrás) era común ver <script type="text/vbscript"> (vbscript es una forma de visual basic), pero como solo Internet Explorer ofrece eso, no se ve mucho. Si hacemos algo que opera con todos los navegadores, debemos utilizar <script type="text/javascript">.

Ah, si tan sólo pudiéramos utilizar Python aquí también, del lado del navegador. Un lenguaje en todo lugares y todos los navegadores.

Si era posible...

Debería ser similar a la manera que uno puede usar Javascript. Una pagina html muy sencilla como la siguiente:

<html>
<head></head>
<body>
<script type="text/python">
def hola(nombre = "todo el mundo"):
    alert( "hola, " + str(nombre))  # numeros o caracteres

</script> 
<input type=button onclick="hola()" value="mundo!"> 
<input type=button onclick="hola('queridos lectores')" value="click!">
</body>
</html>

Incluso sin requerir un servidor. Sería bastante bien.


Si, ¡Es posible!

Hay dos cosas mas que debemos hacer, y funcionara:

<html>
<head><script src="brython.js"></script></head>
<body onload="brython()">
<script type="text/python">
def hola(nombre = "todo el mundo"):
    alert( "hola, " + str(nombre))  # numeros o caracteres


</script>

<input type=button onclick="hola()" value="mundo!">
<input type=button onclick="hola('queridos lectores')" value="click!">
</body>
</html>


Y, si estas leyendo mi sitio directamente en un ordenador o ipad (o similar), puedes probarlo (voy a añadir brython en mi sitio para móvil en unas semanas):


 
¡Demasiado! Es cierto.

Brython

Lo que hace eso posible es Brython:


Brython es un proyecto que tiene por objeto sustituir Python a Javascript en los navegadores web. Pierre Quentel annuncio el proyecto en el grupo fr.comp.lang.python ( annuncio en francés ) el 25 de noviembre.

De inmediato fue muy obvio para mi de que era lo que estaba buscando. Como he encontrado algunos problemas, los envió a Pierre, y él los corregía rápidamente. Le ayudo también con la traducción del sitio de francés a ingles:

brython.info/index_en.html

Ahora, estoy trabajando a traducir el sitio (toda la documentación) en español (y buscando ayuda).

No hay documentacion en español, pero hay una lista en español , un grupo google:

groups.google.com/forum/?fromgroups=#!forum/brython-es

Hay grupos google en ingles (brython) y frances (brython-fr) también.

Galeria

A veces una imagen vale mil palabras, o, en este caso, un sitio de demo:

reloj analógico
técnica 'arrastrar y soltar'
almacenamiento local
laberinto 3d


Haga un clic con el botón derecho para ver el código de cada demo. Python. Deja uno sin palabras, ¿verdad?


François

1 comment:

Nicolás said...

Acaso node.js no es la respuesta a tu plegarias!
"Un lenguaje en todo lugares y todos los navegadores."