Lisp en 2025: Definitivamente tienes que darle una oportunidad

Tras ver el video de LinuxChad sobre Lisp, sentí que me había llegado la hora… la hora de dejar de postergar mi encuentro con este legendario lenguaje. Durante años, escuché referencias a Lisp: en la universidad, los investigadores de posgrado insistían en sus virtudes, pero mi preferencia por Python me mantuvo distante de esta joya de la programación.

Mi trayectoria profesional no ha sido ajena a la experimentación con lenguajes. Desarrollé mi propio lenguaje de programación utilizando yacc y flex, e incluso implementé una máquina virtual para simular programación orientada a objetos. Sin embargo, fue al adquirir el SICP (Structure and Interpretation of Computer Programs), conocido cariñosamente como “El libro del mago”, y complementarlo con los videos de las clases de 1986 (remasterizados en 2005), cuando realmente comprendí la profundidad de Lisp.

Aunque Lisp puede aprenderse con relativa rapidez, su verdadera esencia radica en los fundamentos que representa y en el potencial que desbloquea. De esta experiencia, extraje varias enseñanzas fundamentales:

  1. La importancia del lenguaje adecuado: Para expresar las ideas que concebimos, necesitamos un lenguaje poderoso y apropiado que nos permita encontrar soluciones para clases específicas de problemas. Mientras algunos pensarán en DSLs (Lenguajes específicos de dominio), es importante reconocer que herramientas como Python tienen su lugar, aunque en ciertos contextos pueden introducir complejidad innecesaria.

  2. Los tres pilares de un lenguaje efectivo:

    • Primitivas: Las funciones fundamentales con las que nace el sistema, como los operadores básicos “+”, “-” o “print”.
    • Medios de combinación: Los mecanismos que permiten operar con diversos tipos de datos, desde enteros y flotantes hasta estructuras más complejas.
    • Medios de abstracción: Las herramientas que nos permiten construir sistemas complejos a partir de componentes más simples.
  3. El poder de la nomenclatura: Si puedes nombrar algo, puedes controlarlo.

  4. La unificación de código y datos: En Lisp, la distinción entre datos y procedimientos se desvanece, revelando una elegante simetría.

Me he divertido bastante aprendiendo lisp y siguiendo el curso, la ingeniería de software no se trata tanto de escribir programas como de crear lenguajes que permitan expresar soluciones con claridad.

Para poder hacer varios de los ejercicios use un interprete llamado Steel (Opensource)

Dejo a continuación algunos de los recursos:

6 Me gusta

a mi lips me habia interesado por el simple hecho de que habia escuchado que era relativamente efectivo para programar un lenguaje de programación. y yo que soy muy de quitar el ingles por todos lados (no por dificultad, sino que por necedad) pues decia, le tengo que dar una oportunidad, pero creo que primero deberia saber un pinche programa en otro lenguaje. yo ahorita estoy rompiendome la madre con pascal. pero le echare un ojo a lips

para los ejercicios de SICP yo recomendaria: Racket - SICP collections

1 me gusta