Gacela migra su código a Gnu Guile
Como dice el título, estoy reescribiendo parte del código fuente de Gacela, pasando de usar Gnu Common Lisp a usar Gnu Guile.
Hay varias razones para ello; el equipo de desarrollo de Gnu Common Lisp está formado por varias personas, pero lo cierto es que el único que parece trabajar en el proyecto es Camm McGuire, su líder. Esta situación provoca que el desarrollo de Gnu Common Lisp no avance todo lo rápido que sería deseable, que la documentación sea bastante pobre y que hayan bugs importantes a la espera de resolución.
Además me encontré con problemas de integración entre Gnu Common Lisp y OpenGL que hacían que Gacela no funcionara correctamente en algunas plataformas, como por ejemplo los portátiles Asus Eee PC.
Por lo tanto, empecé a buscar un sustituto. Existen muchas implementaciones libres de Lisp y muy buenas, pero una de las razones por las que elegí Gnu Common Lisp fue que era la implementación oficial de Lisp del proyecto GNU y quería continuar con esa idea.
Y de forma accidental me encontré con Gnu Guile. Había leído algo hacía tiempo, pero no había profundizado sobre qué era Gnu Guile. Guile es el lenguaje de extensión oficial del proyecto GNU, además de ser un compilador y un intérprete de Scheme, un dialecto de Lisp.
Cosas que tiene Guile y que yo buscaba:
- Forma parte del sistema operativo GNU y está soportado por la Free Software Foundation.
- Sigo teniendo todo el poder de Lisp a mi alcance.
- Hay mucha gente detrás del proyecto con lo que ello conlleva: buena documentación, versiones frecuentes, una comunidad grande, etc.
- La facilidad para integrar código en C es impresionante, superando a Gnu Common Lisp y a las ctypes de Python.
- Soporta multi-threading, que no es algo que necesitara obligatoriamente pero que no me vendrá mal del todo.
- Y funciona perfectamente en mi Eee PC :-)
Ya he migrado todo el código C y ahora estoy pasando el código Lisp a Scheme, por lo que espero poder liberar la versión 0.5 antes de final de mes.