PyCon Argentina 2009, Cappuccino y LLVM

Me gustaría hacer un post bien largo acerca de todo lo que me dejó personalmente la última PyCon Argentina, pero lamentablemente estoy complicado con el tiempo, ya que no sólo quiero leer y escribir acerca de todo el «bombardeo» de información que te deja cada charla, sino que también quisiera investigar un poco cada cosa y dejar acá algo más que solamente los links. Pero bueno, vamos a hacer el intento de resaltar lo primero que me viene a la mente.

Cappuccino y la Web que se vienecappuccino-icon

Uno de los muy interesantes punteros que me dejó la conferencia tiene que ver con las keynotes[1][2], y la existencia por un lado de la aplicación web 280Slides y por el otro del framework en el cual se basa, Cappuccino. Sugiero pegarle una mirada, más que nada a las demos (para los faltos de tiempo como yo); me parece que es sencillamente genial, hay mucha influencia del OS X acá, y se nota. Es una aplicación donde la línea entre lo desktop y web se esfuma, literal y definitivamente. Lástima que hay que aprender oootro lenguaje nuevo, Objective-J.

Y esto parece que no se va a detener, tal como dijo Jacob. Más si nos enteramos que hay desarrollos bastante avanzados para integrar contextos canvas 3D en los navegadores, y leemos algunas características futuras de HTML5. En resumen, él plantea que toda la toolchain web actualmente apesta, incluso Python, y propone algunas líneas de solución para que Python sea el lenguaje web del 2020, cuando HTML 5 sea el estándar y el navegador web sea el nuevo Sistema Operativo. Ya había escrito algo de esto.

Código más rápido, código más optimizado: LLVMDragonSmall

De la segunda plenaria, me quedó claro que al fin surgió un contendiente de relativa importancia al venerable GCC, y se llama LLVM. Acá tengo más todavía para investigar, pero básicamente el branch performante de Python llamado Unladen Swallow implementará (entre varias cosas más) un JIT para CPython implementado por medio de LLVM; algo así como V8 o TraceMonkey son para Javascript. Una de las cosas en las que Collin afirmó varias veces fue que «no pretendemos ser originales, queremos robar ideas de cualquier paper, de donde sea, con tal de hacer Python más rápido» :-). Lo malo es que al parecer, y si bien era una de las ideas iniciales del proyecto, eliminar el GIL no será tan fácil 🙁 (de paso y relacionado, ¡excelente charla la de Multiprocesamiento en Python!).

LLVM está haciendo muchos méritos para ser considerado, como por ejemplo que Apple está apostando muy fuertemente por él, incluso tiene la idea de reemplazarlo definitivamente dejando atrás a GCC. En Snow Leopard (OS X 10.6), ya mismo se ofrece una interfaz compatible con GCC para LLVM además de toda la toolchain para compilar software desde los fuentes con él. FreeBSD también está trabajando para migrar a él. Y si bien todavía le falta bastante camino por recorrer (tiene escaso soporte para C++, o que no compila el kernel de Linux, por ejemplo), ya se pueden ver algunas muestras de su potencial, y personalmente encontré varios comentarios de que es mucho más sencillo contribuir y entender el código del proyecto comparado con GCC.

En fin, repetí en ambos párrafos, en asuntos totalmente diferentes, la palabra toolchain, que significa literalmente «cadena de herramientas», y está relacionado generalmente al uso de varias herramientas como un conjunto en las diferentes etapas de la creación de aplicaciones. Evidentemente, tanto en el mundo de las aplicaciones web, como en el de los lenguajes de programación, se está yendo hacia la optimización de los recursos que tenemos. ¡Buenísimo! 😀

[1] Snakes on the Web – Jacob Kaplan-Moss
[2] Unladen Swallow – Collin Winter

¡Gracias a PyAr por una excelente PyCon!
Saludos


Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *