20 de Octubre, 2012

Demasiadas herramientas y tan poco tiempo

Esta semana pasada he conseguido echar un rato para evaluar pyglet y ha sido bastante frustrante, pero positivo (muy al final tengo que decir :P).

Como librería gráfica para temas 2D (y en realidad si no haces uso intensivo de OpenGL) está muy bien: se nota que usa OpenGL para acelerarlo todo y el API es potente, bastante pythonic y no tan alto nivel como PyGame, lo cual es bueno para ponerte a hacer cosas sin dominar la librería. Pero el tema audio está fatal :(.

La librería tiene soporte muy básico para algunos formatos, pero al final es casi obligatorio usar AVbin, que tiene diferentes cosas que no me gustan (como distribución binaria sin paquetes en Linux :S). Además me parece que está muy verde y no termina de funcionar (igual es cosa mía, pero un software que casca con división por cero en operaciones aparentemente triviales no me inspira confianza :S).

Igual la impresión que me he llevado es peor porque mi experiencia con PyGame ha sido muy buena: es una librería muy madura y pulida. Creo que a pyglet aún le queda recorrido para estar al mismo nivel de calidad (que no de funcionalidad, pyglet está enfocada a más bajo nivel).

El caso es que uno de los puntos fuertes de pyglet es que es 100% Python y muy autocontenido, comparado con PyGame, que tiene una gran cantidad de dependencias (y dependencias de dependencias), siendo la más destacable SDL.

Al final me he quedado pensando qué sentido tiene marear la perdiz si al final todo nos lo da SDL (que además soporta incluso Android en la rama 2.0; no es la rama estable, pero casi), y para mi no es problema programar en C.

Python (con PyGame por ahora :D) es genial para hacer prototipos, y es divertido porque elimina toda la parte tediosa que tendríamos que hacer en C. Si trabajas haciendo desarrollo, no siempre estás con ánimos de llegar a casa y ponerte a hacer algo demasiado complicado ;).

Es cierto que la distribución es un incordio (el paquete para windows de OWT es 7.6 MB; pero en los tiempos que corren no es tanto :P), y que hay plataformas que por ahora quedan un poco fuera de alcance (como Android, aunque hay algunos experimentos), pero compilar una versión nativa con C no es fácil tampoco, así que la cosa se iguala bastante.

La moraleja de toda esta historia es que si me hubiera puesto a hacer cosas con PyGame, ya tendría algo hecho... y no pruebas con pyglet, la rama 2.0 de SDL (y familia: SDL_image, SDL_mixer, SDL_ttf, etc) compilada, y un cutre prototipo en C de una idea que... la verdad no sé a dónde va a llevarme. Resumiendo: ¡elige una herramienta y úsala!

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

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: