29 de Abril, 2005

Common Lisp práctico

Anoche me encontré vía Slashdot una referencia al libro Parctical Common Lisp, y como tiene versión online, pues allá que voy yo (aunque lo mío es el C, ojo :P).

Soy de esas personas que comienzan las cosas por el principio, así que empezé por ojear la introducción. El libro, escrito por Peter Seibel, no debe estar muy mal, porque en apenas unos párrafos ya consiguió contagiarme un poco de su entusiasmo. Aunque va a ser que no :D, y lo voy a justificar un poco.

Seguí leyendo, y más o menos cuando me encontré con algo como:

(defun prompt-read (prompt)
  (format *query-io* "~a: " prompt)
  (force-output *query-io*)
  (read-line *query-io*))

Llegué a la conclusión de que me había dejado engañar un poco. Ese código tan horrible es solo para realizar lecturas de teclado en consola, pasándole un argumento que será el prompt:

(prompt-read "Nombre")

No descarto que Seibel tenga algo de razón en su introducción, aunque va a ser difícil de comprobar.

Common Lisp es un dialecto de Lisp que está regulado por ANSI, y se especifica como lenguaje de propósito general (quizás a alguien le sea familiar el dialecto de Lisp para su uso en problemas de inteligencia artifical).

Parte de la potencia de Lisp es que permite redefinir y extender el propio lenguaje (concepto: lenguaje de programación programable), y según lo que recuerdo de Smalltalk (que permitía hacerlo de forma brillante), es una característica muy potente. Pero creo que todo cae en picado por culpa de la sintáxis.

Por lo que se desprende de la introducción del libro, su punto débil puede ser su mayor baza. La dificultad en la sintaxis (a la vista salta el uso de paréntesis) puede ser excelente para ejercitar la habilidad del programador. Yo mismo admito sin dudarlo las maravillas que han obrado en mi los años que le dediqué al ensamblador. Pero eso no justifica el uso permanente de Lisp: si eres bueno con ese lenguaje, es decir, ya te has ejercitado, mucho mejor serás con otro lenguaje más accesible. Sería como un entrenamiento, que no va a ser el fin último de desarrollar nuestra habilidad.

También lo he mirado por encima, y puede que aún no me haya recuperado de mi trauma cuando hace años toqué un poquito de CLOS (Lisp orientado a objetos). Igual necesita una revisión más a fondo, puede ser.

Por último comentar que las aplicaciones que se realizan en el libro son bastante impresionantes, así que igual puede ser intensante para quién quiera experimentar con algo diferente y hasta, quién sabe, encontrar su lenguaje.

Anotación por Juan J. Martínez.

Hay 1 comentario

Gravatar

Yo he usado Common Lisp para hacer una base de conocimiento y es cierto, es bastante potente y sencillo de realizar, los problemas llegaron cuando hice un PACMAN en Common Lisp ;)

En fin, frikadas que se le ocurren a uno, jejeje.

El lenguaje es muy potente pero la sintáxis es la más horrible que he visto en mi vida, se usa en programas tan extendidos como AutoCad, pero pregúntale a un Arquitecto si sabe que es Lisp...

Salu2

por Cek, en 2005-04-29 13:13:10

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.