18 de Junio, 2010

De Perl a Python

Una de las cosas que más me preocupaba de pasar de Perl a Python era perder CPAN. Es demasiado bueno.

Ya lo comenta precisamente Gabor Szabo en su anotación de ayer (Comparing perl and Python): las librerías del core de Python cubren más campos que las de Perl, que en los últimos tiempos se ha esforzado en el modelo small core, moviendo todo el sobrepeso a CPAN, que es sin duda una de las killer features del lenguaje.

Una de las cosas que me propuse al reimplementar el blog en Python fue seguir la máxima de muchos proyectos en Perl de apoyarse en CPAN todo lo posible para cumplir el principio DRY (del inglés Don't Repeat Yourself, o cómo reutilizar código existente). ¿Sería posible con Python?

Bueno, de entrada tenemos PyPI, o Python Package Index, que va por detrás de CPAN en unos 7000 paquetes. No pinta mal, y la verdad es que no me ha decepcionado.

Dado que quería acabar la implementación lo antes posible, he recurrido a paquetes cuando he podido, y mi lista se ha quedado en:

  • Pygments: lo utilizo para colorear la sintaxis de los trozos de código que pongo en las anotaciones. En el viejo blog usaba Geshi, para PHP.
  • redis-py: necesario para acceder a Redis, porque es lógico que no hubiera soporte en el core de Python.
  • Textile: para dar algunas posibilidades de formato enriquecido a los comentarios. Anteriormente usaba una expresión regular, pero me dio pereza portarla a Python. Uso un modo de textile restringido, ideal para comentarios, foros, etc.
  • Whoosh: genial para indexar las anotaciones y proporcionar búsquedas de calidad. Me ha sorprendido lo rápido que es y lo buenos que son los resultados (ordenados por exactitud de la coincidendia), aunque en mi blog anterior lo hacía por SQL y la verdad es que era una porquería :P.

Además he usado un módulo para TextLinksAds en unas pruebas, pero lo tuve que reescribir casi entero. No lo pongo en la lista porque no está en PyPI y además es de una calidad muy inferior al resto.

La verdad es que estoy muy contento por la funcionalidad conseguida, a cambio del tiempo empleado. Todos estos paquetes tienen una documentación excelente (quizás me costó un poco hacerme con la de Whoosh; pero es porque la librería es compleja), y son sencillos de integrar.

Así que por ahora el cambio de Perl a Python no ha sido nada traumático (salvo algunos detalles que ya comentaré). Creo que sigo programando igual, y me da la impresión que únicamente le he cambiado el nombre a alguna herramienta, pero en el fondo es casi lo mismo ;).

Anotación por Juan J. Martínez, clasificada en: perl, python, blog.

Hay 2 comentarios

Gravatar

Interesante, seguro que sería materia de otra entrada comentar un poco sobre el framework de desarrollo, el tipo de organización que utiliza (MVC, HMVC...) y comprarlo con otros que hayas probado en Perl…

por r0sk, en 2010-06-24 16:37:41

Gravatar

Uff, qué responsabilidad :)

No sé si estoy tan puesto es tipos de frameworks, pero un comentario informal yo creo que sí se puede hacer ;)

por Juanjo, en 2010-06-24 23:03:29

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: