Este fin de semana estuve participando en esta formidable conferencia.
Organizada a pulmón por la gente de la comunidad Python, el evento fue una muestra más de lo que se puede hacer sin mucho más que ganas y pasión. Me hizo acordar mucho a las jornadas Agiles 2008 en ese sentido, e incluso ellos lograron algo más prolijo en varios sentidos.
Como era de esperar, mi charla dentro de este evento estuvo centrada una vez más en IronPython, esta vez acompañado por mi joven amigo Johnny Halife.
Esta vez, a diferencia que las otras decenas de veces que hablé sobre este tema, el público conocía mucho más de Python, aunque para mi sorpresa cuando pregunté quien conocía y quien trabajaba en .NET, muchas manos se levantaron en la sala.
Lo primero que hicimos, y creo que llamó la atención, fue una breve demo mostrando TryPython.org, el sitio que Michael Foord está desarrollando iterativamente como un tutorial de Python ejercitable en línea. Lo interesante de la demo era el escenario completo que demuestra:
El tutorial incluye el texto tradicional que explica las características de lenguaje en la mitad izquierda de la página, y una consola interactiva donde pueden probarse los ejemplos a la derecha.
Esta consola no es algo pasivo que se transmite para su ejecución en el servidor. Corre por completo dentro del browser, aprovechando el runtime de Silverlight, es decir que ejecuta código Python, pero no usando el runtime clásico, basado en C, sino el CoreCLR, que es la implementación de .NET dentro del plugin alojado en el browser. De nuevo, no usa un runtime de .NET instalado en la máquina, sino el que está en Silverlight (una parte menor de los 4.6 MB que ocupa el plugin).
Para mostrar qué tan lejos estamos de una solución limitada y propietaria, el browser era FireFox, no IE. Pero más aún, como demostración tajante de que no teníamos .NET corriendo debajo, el sistema operativo no era Windows, sino Mac OS X.
Con esta brevísima demo creo que logramos enganchar a la audiencia, y después volvimos un rato a las explicaciones: qué son y cómo funcionan .NET y Silverlight, la historia de Jim Hugunin implementando Python sobre .NET (después de su éxito con Jython, que es Pythin sobre la JVM) para probar que el CLR era una pobre plataforma para lenguajes dinámicos, y descubriendo en el proceso que no era cierto. Cómo Jim fue transmigrado a Microsoft para terminar y extender IronPython y luego factorizar desde éste el Dynamic Language Runtime (DLR), sobre el que están implementados también IronRuby, IronScheme y otros lenguajes de este estilo.
Contamos que IronPython incluye todas las librerías estándar de Python, y el proyecto IronClad está agregando soporte para usar las extensiones en C directamente desde el runtime.
Finalmente hablamos un poco sobre los usos y mostramos una serie de demos cortas como la DlrConsole, que es también una consola que interpreta Python dentro del browser, pero además permite cambiar sobre la marcha entre Python y Ruby, viendo las variables declaradas en un lenguaje desde el otro, etc.
Otro ejemplo muy impactante para mi fue el de Gestalt, un proyecto reciente que permite agregar scrit embebido en el HMTL de una página pero escribiendo el código en Python o Ruby, en lugar de Javascript. Obviamente, requiere Silverlight instalado porque usa el runtime, pero es muy prometedor.
Disfruté mucho la interacción y las demás sesiones, especialmente una sobre interacción con dispositivos MIDI dada por Anthony Lenton (full cordobés a pesar del nombre). Excelente y original.
Gracias a Ezequiel Gutesman que me invitó cuando empezaba la organización. Espero tomar más contacto con la comunidad Python local a partir de esta experiencia.