@ agnasg

agnasg


Ejecutable de un Programa Lisp

30-09-2009 9:12 PM

Esta es más una digresión que algo relacionado al desarrollo de un MMO pero quiero comentarlo para que quede como documentación para alguien que esté interesado en el tema (incluyéndome a mi en un futuro)

Para hacer unas pruebas del módulo de inteligencia artificial del juego he estado probando algunos prototipos, algunos desarrollados en C++ y otros en lisp.

El problema de desarrollar en Lisp (al menos para mi) no es tanto el lenguaje al que ya me he acostumbrado bastante bien, sino su ambiente, el IDE. Al cual todavía no me he acostumbrado en lo absoluto. Lo ideal sería poder desarrollar todo en un solo ambiente. Pero para ello necesitamos generar un ejecutable con Lisp. Dando vueltas por ahi y por allá descubrí uno maravilloso y software libre llamado ECL . Se puede bajar de aqui.

Hay también formas de generar un ejecutable desde lisp utilizando SBCL, mi implementación favorita de Common Lisp (y la recomendación generalizada es el programa final llame a mis librerías en C y no al revés. Aqui hay una discusión al respecto)

Para bajarlo necesitas un programa de control de versiones llamado git (muy popular dado que los manejadores de versiones cvs son algo engorrosos y problemáticos). La mayoría funcionabien solamente para Unix y Linux, pero hay una versión limitada para Windows que se puede bajar de aqui. Esta versión sirve a nuestro propósito.

Lisp no es un lenguaje tan impopular como podría pensarse. Hay varios sitios donde se puede leer noticias actualizadas sobre el tema (por ejemplo Planet List, Hacker news, etc). Pero no es C, no C++. Y no me refiero a que uno es un lenguaje funcional (casi, o más o menos) y el otro es imperativo, sino que al decir Lisp estamos hablando de una familia de lenguajes. Lo que yo estoy usando es Common Lisp, que está basado aproximadamente a una estandarización del original. Pero también otras versiones similares, y está Scheme y otros sabores. Y cada uno es estricto en ciertas peculiaridades y otros no tanto. Por ejemplo, Clojure es un lenguaje que produce código JVM (la máquina virtual de Java) y es un dialecto de Lisp. Así que es otra alternativa, interesante por cierto porque corre en el navegador. Ha tenido un gran auge los dos últimos años y mucha gente se ha visto motivada a utilizarlo como una aproximación a Lisp. Pero genera código para JVM y como el futuro de Java es tan incierto, esta solución tiene sus problemas. Scheme ya tiene su tiempo en la calle y ha sido acogido cariñosamente por la comunidad universitaría, pero algo que sé desde hace años es que es limitado y eventualmente el poder de Lisp es necesario. Así que para evitarme más rodeos (y tener que seguir pensando en el tema) me estoy quedando con Common Lisp.

2 respuestas a “Ejecutable de un Programa Lisp”

  1. David dice:

    Si lo que echas en falta es un bonito entorno de desarrollo para Lisp, definitivamente debes probar el combo Emacs+Paredit+Slime. Desde que lo uso, el entorno es uno de los grandes puntos a favor de Lisp. 🙂

  2. admin dice:

    Estoy trabajando con Emacs+Slime+SBCl y lo siento bastante confortable. No conocía Paredit lo estoy probando. Gracias por el dato.