Saturday, February 16, 2008

Web Framework Deathmatch

Cramm tuvo la idea de hacer, durante el pycamp, un deathmatch de frameworks web. El planteo fue que la gente hiciera una aplicación web "modelo", igual para todos, cada uno con la herramienta de su preferencia. El desafío era hacer un motor de blog con themes, rss, comentarios, tags y que sea multiusuario.

Dioni ya estaba haciendo uno en Django; sólo le tuvo que agregar la multiusuariedad. Javi mostró algo de Plone, creo que sin nada agregado. El Dani quiso probar qué tal era hacer un motor de blog sin ningún framework, usando solamente la biblioteca estándar de python.

Después de empezar, decidió usar un sistema de templating simple, pero que le ahorraba mucho trabajo de hacer las páginas dinámicas a mano. Me pidió una mano con el tema de html's y temas con css, y acepté la propuesta.

El motor del Dani quedó listo en 1k líneas de código python, más 1.5k líneas del sistema de templating. Al motor sólo le falta el feed RSS (bueno, y se le pueden alindar muchas cosas) pero tiene todos los otros requisitos, más 4 hermosos themes built in diseñados por mí.

La verdad es que estuvo muy bueno hacerlo; trabajar con el Dani estuvo piola y la parte de hacer diseños también. Al no estar el motor terminado cuando me puse a hacer los skins, tuve que cambiarles cosas varias veces, y nunca diseñé con mucha anticipación: iba inventando el tema mientras lo escribía y de paso iteré un par de cositas que me iban desconvenciendo.

El proyectito usa varias partes de Corp, el juego que hicimos con mucha otra gente para el pyweek4, y tiene necesariamente licencia GPL v2 (por ser obra derivada de Corp). Yo no vi mucho el código, pero dice el Dani que al final medio que se hizo su propio framework, pero en mucho menos espacio :) (22kb en total contra 19k del proyecto en django, más los 22mb de la instalación de django itself).

Va a quedar online para quien lo quiera JFF.

No comments: