Shoes, Cairo y PyGTK

jueves, febrero 26, 2009

Estuve conversando ayer con un amigo sobre toolkits sencillos y rápidos para desarrollar aplicaciones gráficas multiplataforma. Hablamos de FLTK, de ETK, de murgaLua, obviamente del GTK+ y Qt4 y hasta del mismísimo infame Gambas. Es ahí cuando el pana me presenta a "Shoes" <fanfarria con bombos platillos>.

Shoes (a.k.a alfombra, media, chancleta o como te provoque llamarlo =P) es un toolkit muy pequeño y que por sí solo puede hacer cosas realmente impresionantes. Según su creador "... puedes hacer aplicaciones realmente colorídas..." y se lo creo. Para muestra un botón



Está hecho en Ruby pero su sintaxis es tan simple que parece HTML con CSS (claro gracias en parte a los bloques de código Ruby). La cuestión me llamó tanto la atención que decidí probarlo y mi conclusión: es sencillamente maravilloso. El código es tan limpio, tan simple y tan intuitivo que dan ganas de poner a volar la imaginación para desarrollar cuanta cosa se te ocurra.

Y es que el simple hecho de que pueda hacer una ventana con un fondo degradado con tan solo 7 miserables líneas de código me hace sangrar la nariz.
Shoes.app do
background "#F3F".."#F90"
title "Shoooes", :top => 60,
:align => "center",
:font => "Trebuchet MS",
:stroke => white
end

Sin embargo me surgió una pregunta: ¿Por qué Ruby? y e instantáneamente surgió otra: ¿No habrá un Shoes para Python? La respuesta a la segunda es NO. La respuesta a la primera aún la desconozco.

Si aún están leyendo se preguntarán: ¿Y que tiene que ver todo esto con Cairo y PyGTK? Pues muy simple, revisando el código fuente de Shoes me di cuenta que una ventana no es más que un lienzo (o canvas) y que ese lienzo _aparentemente_ lo crean y lo trabajan con Cairo. Suena muy simple, pero créanme... no lo es.

Fue ahí donde se me ocurrió la idea: ¿Por qué no hacer una implementación de Shoes para Python usando Cairo? y pues bueno aquí estoy, leyendo todo cuanto encuentro sobre Cairo y PyGTK. He leído un par de blogs donde dicen como trabajar con Cairo y PyGTK, además de la documentación de Cairo. Entre ellos:

http://blog.rastersoft.com/index.php/2007/06/20/trabajando-con-pycairo-y-gtk/

http://blog.eikke.com/index.php/ikke/2007/02/17/python_cairo_xshape_and_clocks

http://cairographics.org/documentation/pycairo/reference/index.html#reference-index

Apenas he corrido un par ejemplos y todo parece funcionar muy bien. Seguiré investigando y publicando mis progresos.

Cambio y fuera

2 comentarios:

Eleazar dijo...

Eres el Macslow criollo :D. Estas cosas son las que provoca leer carajo, no esas mariconerias de Internet Explorer xD.

Unknown dijo...

Jajaja gracias por el cumplido bitchy! xD pero creo que aún me falta mucho para llegarle siquiera a los talones a Macslow... Soy un vulgar aprendiz =P

Saludos