jueves, 18 de septiembre de 2008

Cómo crear un entorno amigable para Lisp en Windows

¿Qué hay de nuevo?

Hoy hablaremos de Lisp y Windows. No es este el mejor sistema operativo para usar Lisp. Tradicionalmente ha habido implementaciones de Lisp para Mac y Unix, aunque algunas compañías como Franz ofrecen buenos compiladores de Lisp para Windows. Esta es una buenísima opción para todos aquellos que no tengan reparos en usar software propietario, puesto que la versión de evaluación de Allegro impone muy pocas limitaciones a los desarrolladores, junto con un gran IDE y un compilador rápido. Sin embargo, hoy hablaremos sobre cómo usar un Lisp libre como es clisp sobre Windows sin dejarnos los nervios en el intento.

El entorno que instalaremos constará de clisp como intérprete de Lisp y emacs + slime como IDE. Muchos de vosotros ya conoceréis emacs, así que no hace falta presentarlo. Slime es un modo de interacción con emacs que permite ejecutar lisp desde un buffer de emacs y muchas otras cosas, como documentación en línea de funciones, inspector de objectos, compilación de archivos desde emacs y mucho más.

Empezaremos por instalar clisp. En sourceforge podemos encontrar el último instalador para Windows, que mientras escribo este artículo es el clisp-2.46-win32-mingw-big.exe. Para instalarlo seguiremos el procedimiento estándar en Windows ( aceptar, aceptar, aceptar ...). Para finalizar, sólamente nos queda una comprobación: vamos al menú inicio -> ejecutar y escribimos "clisp". Si está correctamente instalado veremos aparecer el REPL de clisp. Si no apareciera, desinstalamos clisp y instalamos una versión distinta. Que aparezca clisp de esta manera quiere decir que se ha instalado correctamente en el PATH. De no ser así, todavía se puede instalar emacs+slime, pero será más complicado, de manera que no voy a explicarlo ahora. Si a alguien le interesa que me lo haga saber en un comentario y se lo explicaré.

A continuación procedemos a instalar emacs. Podemos bajarlo desde aquí. He enlazado a la versión 22.3 porque, además de ser la última y mejor versión de emacs, tiene una bonita interfaz en GTK . Lo que bajaremos es un archivo comprimido en formato zip que habremos de descomprimir. Seguidamente crearemos la carpeta C:\emacs y copiaremos allí todo lo que hemos descomprimido, de manera que nos queden las carpetas C:\emacs\bin, C:\emacs\lisp, etc. Para poder usar emacs sólo nos queda crear un acceso directo en el escritorio al archivo C:\emacs\bin\runemacs.exe.

Para finalizar habremos de instalar slime. Para ello descargamos la última snapshot de la cvs desde aquí. Una vez bajado, lo descomprimimos y copiamos el contenido de la carpeta que aparece a C:\, de manera que nos quede, por ejemplo, C:\slime\README, C:\slime\doc, etc... Una vez hecho esto, sólo queda decirle a emacs dónde encontrará a slime. Para ello, abrimos emacs y seleccionamos las opciones "Active region highlighting" i "Parent match highlighting". Estas opciones nos facilitaran editar código fuente en lisp. Seguidamente, guardamos las opciones haciendo click sobre Options -> save options , y nos fijamos en el nombre de archivo que pone en el minibuffer. Esa es la ruta completa hasta el archivo de configuración de emacs. En mi pc, la ruta es C:\Documents and settings\nombre_usuario\Datos de programa\.emacs. Bien, ahora desde emacs abrimos ese archivo y añadimos las líneas siguientes:

(add-to-list 'load-path "/slime/") ; dónde hemos instalado slime
(setq inferior-lisp-program "clisp") ; nuestro lisp.
(require 'slime)
(slime-setup)

Ya está. Ahora cerramos emacs y lo volvemos a abrir para que cargue los cambios en el fichero de configuración ( seguramente, hay otra manera más elegante de hacer esto, pero no la conozco) y ya podemos empezar a usar slime. Para arrancarlo, simplemente escribid "Alt - x " y cuando el minibuffer os pida que escribáis poned slime. Ahora pulsad enter y slime ya cargará.

Podéis ver el resultado a continuación:





















Eso es todo por hoy. Espero que con esto consigáis tener un entorno lisp decente en el que dar forma a vuestras ideas. Adew!

miércoles, 17 de septiembre de 2008

Primeros pasos con LTK ( parte 1 )

Hoy vamos a hablar de la creación de interfaces gráficas de usuario en Lisp. Hoy en día una buena interfaz es un requisito imprescindible para que un programa tenga éxito fuera del ámbito científico o puramente técnico. Pero además, para que el desarrollo del programa sea asumible por el programador, es preciso que el tiempo invertido en crear esa interfaz no sea excesivo.

La librería por excelencia para crear interfaces gráficas en Lisp es LTK ( http://www.peter-herth.de/ltk/ ). LTK es una creación de Peter Herth. Consiste en una tubería que transforma nuestro código lisp en código tcl que es ejecutado por el programa wish. Si no habéis entendido nada de la parrafada anterior, no os preocupéis. No es necesario entenderla para poder usarla, LTK es tremendamente sencilla de usar.

Primeramente, hay que instalar LTK. Para ello habremos de seguir 2 pasos:
  1. Instalamos el lenguaje de programación tcl/tk. Normalmente cualquier distribución de linux lo llevará instalado por defecto. Si no es así, instaladlo, usado apt-get, synaptic, yast, emerge o cualquier herramienta que use vuestra distribución. No es necesario instalar los paquetes de desarrollo.
  2. Instalamos la librería LTK propiamente dicha. Para ello, si disponemos de asdf-install, sólo tendremos que entrar en lisp y teclear
(asdf-install:install 'ltk )
Sólo tendremos que seguir las instrucciones que asdf-install nos irá dictando y ya tendremos LTK instalada.

Nuestro primer programa

Usar ltk es terriblemente fácil. Como muestra, veamos un primer programa que nos muestre el ya clásico "Hola, mundo" en una ventanita:

(use-package :ltk )
(with-ltk ()
(let
(
( etiqueta (make-instance 'label :master nil :text "Hola, mundo" ))
)
(pack etiqueta)
)

)

Veamos cómo nos ha quedado:

Voilà! Aquí tenéis una pequeña screenshoot de LTK corriendo nuestro ejemplo en un Windows XP.

No voy a extenderme hoy sobre que es lo que hace nuestro código. Habrá tiempo para eso. Sólo espero que lo que habéis visto haya despertado vuestro interés por la programación gráfica en Lisp usando LTK.

Hasta la próxima!

martes, 16 de septiembre de 2008

El inicio

Hola a todos desde lispinspain.blogspot.com!

A partir de ahora intentaremos crear un blog dónde congregar a todos los programadores de lisp de habla hispana que, hasta el momento, no disponían de recursos en su idioma.

Siempre se ha dicho que no existe una comunidad alrededor de lisp. Esto es cierto, pero no nos impide que creemos una. La falta de información en su idioma puede hacer que cualquier persona interesada en lisp se desanime a las primeras de cambio, cosa muy triste porque lisp es uno de los lenguajes de programación más antiguos que existen y a la vez uno de los más potentes.

Bueno, chicos y chic@s. Espero que desde esta página se pueda animar a mucha gente a mirar a lisp con un poco menos de miedo.

Nos vemos!