Initial commit
[blog.git] / posts / 147.html
1 title: Gacela migra su código a Gnu Guile
2 date: 2011-05-11 06:11
3 ---
4 <div>
5 <img src="/wp-content/uploads/2011/05/guile-banner.small_.png" alt="" title="gnu guile" width="300" height="75" class="alignleft size-full wp-image-523" />
6
7 <p>Como dice el título, estoy reescribiendo parte del código fuente de <a href="http://gacelaproject.org/">Gacela</a>, pasando de usar <a href="http://www.gnu.org/software/gcl/">Gnu Common Lisp</a> a usar <a href="http://www.gnu.org/s/guile/">Gnu Guile</a>.</p>
8
9 <p>Hay varias razones para ello; el equipo de desarrollo de <a href="http://www.gnu.org/software/gcl/">Gnu Common Lisp</a> 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 <a href="http://www.gnu.org/software/gcl/">Gnu Common Lisp</a> 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.</p>
10
11 <p>Además me encontré con problemas de integración entre <a href="http://www.gnu.org/software/gcl/">Gnu Common Lisp</a> y <a href="http://www.opengl.org/">OpenGL</a> que hacían que <a href="http://gacelaproject.org/">Gacela</a> no funcionara correctamente en algunas plataformas, como por ejemplo los portátiles Asus Eee PC.</p>
12
13 <p>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í <a href="http://www.gnu.org/software/gcl/">Gnu Common Lisp</a> fue que era la implementación oficial de Lisp del <a href="http://www.gnu.org/">proyecto GNU</a> y quería continuar con esa idea.</p>
14
15 <p>Y de forma accidental me encontré con <a href="http://www.gnu.org/s/guile/">Gnu Guile</a>. Había leído algo hacía tiempo, pero no había profundizado sobre qué era <a href="http://www.gnu.org/s/guile/">Gnu Guile</a>. Guile es el lenguaje de extensión oficial del <a href="http://www.gnu.org/">proyecto GNU</a>, además de ser un compilador y un intérprete de <a href="http://schemers.org/">Scheme</a>, un dialecto de Lisp.</p>
16
17 <p>Cosas que tiene Guile y que yo buscaba:</p>
18
19 <ul>
20 <li>Forma parte del <a href="http://www.gnu.org/">sistema operativo GNU</a> y está soportado por la <a href="http://www.fsf.org/">Free Software Foundation</a>.</li>
21 <li>Sigo teniendo todo el poder de Lisp a mi alcance.</li>
22 <li>Hay mucha gente detrás del proyecto con lo que ello conlleva: buena documentación, versiones frecuentes, una comunidad grande, etc.</li>
23 <li>La facilidad para integrar código en C es impresionante, superando a <a href="http://www.gnu.org/software/gcl/">Gnu Common Lisp</a> y a las <a href="http://docs.python.org/library/ctypes.html">ctypes de Python</a>.</li>
24 <li>Soporta multi-threading, que no es algo que necesitara obligatoriamente pero que no me vendrá mal del todo.</li>
25 <li>Y funciona perfectamente en mi Eee PC :-)</li>
26 </ul>
27
28 <p>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.</p>
29 </div>