@ agnasg

agnasg


A binding is the runtime manifestation of a variable

08-07-2008 2:09 PM

Ayer me levanté a las 3 am, huyendo de los zancudos. Claro que no perdí el tiempo, y continué mi aprendizaje de Lisp. Antes he hablado del tema (1, 2 y 3), me ha parecido interesante comenzar este aprendizaje por razones de trabajo, mis ideas para utilizarlo para un juego que diseñé hace un par de años, y, finalmente, porque es realmente divertido aprenderlo. Y hoy mis ánimos están como nunca ansioso de continuar. El aprendizaje de un lenguaje nuevo es fascinante. Es como visitar un nuevo país. Pero Lisp suele ser desalentador. Es raro. Muy raro. Casi complicado. Dicho inclusive por programadores expertos en assembler (programar en assembler es como resolver integrales). En realidad, ya he intentado aprender este lenguaje varias veces (incluyendo en la universidad hace 26 años) abandonando la aventura abrumado por las rarezas del lenguaje. Es como la manía de ciertos orientales de comer perro: no es solamente lo cuestionable que es comerse a un animal tan amigable y que sería capaz de hacer lo que estuviera a su alcance por nosotros, sino que al cocinarlo huele al infierno. Caminando por el mercado de Singapur (visité este país hace unos años cuando era feliz y no lo sabía) pasé cerca de un restaurante y tuve que correr para escapar del más espantoso olor que he olido en toda mi vida. Pues bien, Lisp es así: es raro y provoca salir corriendo.
Por ejemplo: en lenguaje C/C++ y en la mayoría de los lenguajes que descienden de Algol ‘==’ es igual. Dos expresiones iguales pueden ser comparadas con el operador ‘==’ y no hay mayor di
scusión sobre el tema. En Lisp hay 4 operadores para esto: eq, eql, equal, equalp. Y la diferencia entre ellas es la misma que hay entre “lo mismo” e “idéntico”: producen el mismo resultado pero se representan de forma distinta. ¿Otro ejemplo? Las convenciones. No sé si esto es algo así como obligado, pero en el libro Practical Common Lisp, podemos leer las normas para colocar comentarios: ;;;; es un comentario al principio del archivo, ;;; un comentario para un larga sección de código, ;; es un comentario para las siguientes líneas y ; aplica a la línea actual. ¿Raro? Sí, y también es raro la forma vehemente con que todos los autores prometen que nos olvidaremos y nos acostumbraremos rápidamente a la profusión de paréntesis. Porque en Lisp, vamos a utilizar paréntesis todo el tiempo.

Al parecer hay un resurgimiento del interés en Lisp, y en los blogs más conocidos aparece de vez en cuando algún comentario sobre el tema. Incluside una de las implementaciones de Lisp (SBCL, Steel Bank Common Lisp) es apenas 0.9 más lento que C++ y 0.2 más rápido que Java. Así que al menos en velocidad, ya Lisp no es tortuga que solía ser. Por lo demás, ya los argumentos a favor de lisp son tantos y con tal nivel de sofisticación que he perdido la capacidad de asombro. En el mencionado artículo podemos leer lo siguiente: “Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.” [“Cualquier programa en C o Fortran suficientemente complicado contiene una implementación parcial de Common Lisp ad hoc, informalmente especificada, repleta de bugs, y lenta”]. Ver Greenspun’s Tenth and only rule. Esto se traduce que en realidad, cuando programamos sistemas complejos con lenguajes de programación tales como
C o C++, terminamos simulando e implementando las características que vienen en forma automática en Lisp. O, dicho en otra forma, Lisp es el lenguaje de programación más productivo para sistemas complejos.

Piensa

01-07-2008 6:42 PM

¿Ningún post en junio? Lo siento, estaba ocupado trabajando, programando mi juego, escribiendo, y, como un divertimiento medieval, dándole un vuelco a mi vida (otra vez). He prometido escribir sobre esto último y todavía no he decidido si lo voy a hacer. Creo que hay que pensar. Pensar. Detente por un momento, querido y desocupado lector. ¿Cuando fue la última vez que pensaste? ¿Recuerdas? ¿Recuerdas la última vez que te preguntaste qué voy a hacer con mi vida? ¿Fue a los 15 años? En mi caso fue hace unos minutos. Es una aventura interesante. Inténtalo alguna vez. Te sorprenderás de los resultados. Te quedarás viendo al vacío. Tu mirada será como la de El lobo estepario (la novela de Herman Hesse). Será una mirada que traspasará los milenios. Será una mirada que irá directamente a aquél momento en el que uno de nuestros antepasados se preguntó por qué hay que salir a buscar comida todos los días y arriesgarse a que un tigre nos convierta en su comida. Será una mirada como la de Lady Lindon, la viuda de Charles Lyndon, en la película Barry Lindon (español) la mirada al final de la película, la mirada que ella tiene cuando va a firmar el cheque para la pensión de Redmond Barry, esa mirada, una mirada que se construyó a lo largo de todos los años de su vida. Sí, esa mirada. Es, quizás, la mirada de mi padre. Luego de 30 años trabajando en el departamento de acueductos de la nación, ha dedicado los siguientes 30 años a preguntarse cuánto valen 30 años. O, ¿para qué sirven 30 años? O, ¿qué
hacer durante 30 años?. Esa mirada.
¿Qué es, entonces, lo que voy a escribir? Un cuento. Ficción, y como tal debe ser considerado. Es un simple cuento. Una historia. Alguna vez escribí (y leí también) que hay palabras que no deben ser pronunciadas, versos que no deben ser compuestos, prosa que no debe ser escrita. Y parece que este cuento, este terrible cuento jamás será escrito. Baste decir que el cuento se titula “Volví al sofá” y tiene como introducción algo así como lo siguiente:

Volví al Sofá
Ficción

Siempre he sentido poco respeto por los lectores que abren una novela nueva, y comienzan a leer el último capítulo. Si les gusta, entonces comienzan a leerla desde el comienzo. No es para mí chistoso, y tampoco puedo ser indulgente con la paciencia (o la falta de ella) que tienen algunos. Sin embargo, y tratando de satisfacer a todos, voy a contar el final de esta historia. Es simple y se puede decir en pocas palabras. Esta es la presentación de ascensor de la historia (una presentación de ascensor es una técnica de ventas que consiste en explicar un negocio en el tiempo que le tarda el ascensor en llegar al piso de la compañía) :

Después de dos décadas del más ufano de los matrimonios y de un tortuoso y no tan ufano divorcio, nuestro personaje deambula de un lado para otro durante tres años hasta que termina viviendo nuevamente en su casa. Como la casa no tenía cuarto adicional, no le quedó más remedio que volver a dormir en el sofá.

Afortunadamente, el sofá era estilo modular, con la mejor imitación de una cama en el diseño de un sofá. Tenía casi 90 cmts. de ancho, y su módulo preferido era de metro y tanto de largo. Era todo confort, placer y comodidad como ningún otro sofá podía ofrecer. Luego de tres años durmiendo en pensiones, castillos en la campiña francesa, el cuarto acolchado de un manicomio, una buhardilla en la peor zona de Calcuta, el m
ás exclusivo pent house con vista al central park en Manhattan, mazmorras medievales, y hospitales en zona de guerra, esto era como dormir en el salón del harén de un pachá.

§

Enlaces

  • ¿Crees que Mugabe es el peor dictador de africa? Piensa de nuevo. Les presento a Teodoro Obiang, quien reune todas las condiciones para ser nominado para el salón de la fama de los dictadores [1]:
    • Años de aprendizaje en un régimen genocida liderizado por un tío?Sí.
    • Conquista del poder a través de un golpe de estado en contra de un tío asesino? Sí!
    • Ejecución del tío en un pelotón de fusilamiento? Por supuesto!
    • Proclamación como “el liberador” de la nación? Claro! No faltaba más.
    • Gobernando por décadas en una maneras que los grupos de derechos humanos lo acusan de asesinato, tortura y corrupción? Sí y sí!
  • Hablando de Java, leí lo siguiente en un proyecto publicado en Getafreelance:

    If you prefer to use Java or .NET then you definitely should not apply for this job. We do not like those languages at all. We feel strongly that those languages are like diseases. However, we do not mind if you currently develop in one of those languages and, like a refugee from a war zone, are seeking to escape.

    [Si Ud. prefiere utilizar Java o .NET entonces definitivamente Ud. no debe optar a este trabajo. A nosotros no nos gustan esos
    lenguajes en lo absoluto. Nosotros creemos firmemente que esos lenguajes son enfermedades. Sin embargo, nosotros no tenemos problema si actualmente Ud. desarrolla en esos lenguajes y, como un refugiado de una zona de guerra, desea escapar.]

    Ouch!

Terribles días de mis días

01-07-2008 12:31 PM

Terribles días de mis días

Terribles noches de mis noches,

Cuántos momentos esconden de mí.

Momentos fugaces, bellos momentos.

Momentos felices, ¡vuelvan a mí!

Camino, corro por calles solitarias

buscándolos como un demente.

¿Dónde están los momentos?

Los busco ahora y por siempre.

¿He conocido algo más desolador?

Camino y corro por los caminos

Persiguiéndome a mí mismo

a ése que alguna vez fue.

Oh días de mis días.

¿hasta cuando seguiré así?

¿hasta cuando seré una sombra?

Presto atención a cada palabra

Oigo y veo cada paso que doy,

Sufro cada decisión.

Siento en carne viva cada uno,

palabra, paso y decisión.

A carne viva, vivo, en silencio

Ahogando un grito, sin gritar jamás.

Terribles días de mis días

Háganme feliz una vez más!

09-06-2008

Indice

Un lector de un solo autor

31-05-2008 2:17 PM

Como si fuera un delito, a algunos autores se les pregunta (luego de preguntas como qué autores te influenciaron), “pero tu principal libro es X, ¿no te da miedo ser escritor de un solo libro?”, o, “¿cómo afrontas el riesgo de que la gente te reconozca solamente por tu novela X?”. Y yo pregunto ¿Y qué? ¿Y sí X era el libro que él/ella estaba destinado a escribir, y los libros previos eran la preparación y los que vinieron después solo divertimentos para pasar la vejez? El mero objetivo de ser escritor fue, en estos casos, escribir la novela X, el resto es el relleno, es, como en el circo, donde los trapecistas son el verdadero espectáculo, y los payasos, el hombre tragafuego y la mujer manquera son simples actos para que nos dé tiempo de terminarnos el algodón de azucar y prepararnos para la verdadera diversión.

Igualmente, ¿cuál es el problema de ser lector de un solo autor? ¿cuál es el alboroto si a mi solamente me gustan sólo ciertos tipos de libros, un grupo reducido de autores, e igualmente un grupo minúsculo de juegos? Al fin y al cabo, hay quienes tienen por hobbie jugar solamente ajedrez. Este tipo de jugadores no juegan a las damas, backgammon ni otros juegos. Solamente ajedrez. Pues, de igual forma, yo prefiero jugar ficción interactiva o roguelikes. Y hago la reflexión porque, a pesar de uno que otro esfuerzo, en realidad he descubierto que no me gustan otros juegos, de la misma forma que el conjunto de escritores que me gustan es reducido. Yo he leído con bastante detenimiento a Nietzsche, Hesse, Joyce y Kafka. Creo que he leído todos los libros de esos autores. Pero me niego a leer a Goethe, Proust, o Stendhal, por ejemplo, que podrían ser autores afines. De igual forma, ya no siento remordimiento de jugar ficción interactiva o roguelikes. ¿Me quedé en el pasado? No lo creo. Creo que, quizás, tuve la oportunidad (debido a que estoy jugando juegos de computadora desde 1980), de entrar en contacto con este tipo de juegos, a los que yo llamaría juegos puros. Esto es, aquéllos en los que lo importante es la inmersividad no solamente en el juego, sino en el protagonista y la historia.

No me refiero a pasiones como la de algunos cinéfilos a Ingmar Bergman, o de algunos lectores a los libros de Dostoievski, perturbaciones que podríamos llamar más bien obsesiones, o sado masoquismo cinematográfico o literario. Me refiero a un entendimiento. Algo que se acerca más a un conocimiento arcano. El equivalente a conocer la verdad detrás de la sonrisa de la Monalisa: los que jugamos roguelike y ficción interactiva hemos descubierto un arcano, la llave que abre todas las puertas, la piedra filosofal que transforma en oro todos los metales. Y como sucede con este tipo de sabiduría hermética,somos muy pocos lo que sabemos. Nosotros lo sabemos.

Igual conocimiento ignoto tienen los que programan lisp. Ellos están convencidos que tienen la mejor herramienta de programación, el lenguaje con el que está codificado el universo, el lenguaje que usaría Dios, ni más ni menos. Sin embargo podemos contar con los dedos de la mano el número de programadores de lisp en el mundo. Inclusive hay argumentaciones bien elaboradas de por qué la gente no usa ese lenguaje (lo que pasa es que es difícil bajar el compilador).

Así que, perseguimos la calidad, la pureza usando el
impulso vital. Destruimos los falsos ídolos con la fuerza de nuestro conocimiento arcano. Lo que Nietzsche llamaría hablar con el martillo en la mano. Escarbar detrás del barro, revisar hasta el tuétano nuestras creencias y regresar a lo primigenio, poner en duda, en fin, cualquier cosa distinta a la lanza, el fuego y la cueva. ¿Sigo hablando de los roguelikes y la ficción interactiva? Sí. Todo el tiempo…
Enlaces