¿Qué tan estable es Common LISP como idioma?

7

He estado leyendo un poco sobre Common Lisp y estoy considerando intentar aprenderlo (solo conozco conceptos muy básicos) o incluso usarlo para algún proyecto.

Pregunta: ¿Qué tan estable es Common Lisp como lenguaje? Lo que quiero decir es que, independientemente de las nuevas bibliotecas, ¿se están agregando al idioma nuevas características de idioma (que incluyen sintaxis y semántica nuevas)? En otras palabras, si aprendo Common Lisp ahora, ¿podría usar el mismo idioma en 10 años a partir de ahora, o leer el código que se escribió hace 10, 20 años (aparte, por supuesto, de tener que familiarizarse con diferentes bibliotecas y API)?

    
pregunta Giorgio 29.07.2012 - 14:32

2 respuestas

8

Existe el estándar ANSI Common Lisp y la Common Lisp Hyperspec . En general, es razonable suponer que los idiomas estandarizados se mantendrán relativamente estables y que la mayoría de las nuevas incorporaciones de idiomas serán coherentes con el código existente / no rompe el código existente.

Por supuesto, uno de los poderes de Lisp es que puede extender el lenguaje de forma casi arbitraria, por lo que existe la posibilidad de que algunas bibliotecas o DSL nuevas se vean completamente diferentes de cualquier otro código Lisp anterior. Eso es solo un peligro del territorio de la meta-programación. Pero es probable que el lenguaje central se mantenga bastante estable.

Si está interesado en Lisps en general, a diferencia de Common Lisp específicamente, también le recomendaría que visite Clojure (un Lisp moderno, pragmático y funcional) y Scheme (un ideal de Lisp muy limpio y elegante para aprender).

    
respondido por el mikera 29.07.2012 - 16:39
7

La primera edición del libro Common Lisp The Language , escrito por los lispers en CMU (Carnegie-Mellon University) [1] y publicado en 1984, sirvió como base Para ANSI Common Lisp el estándar. La segunda edición (publicada en 1990). refleja el estado actual del proceso de estandarización que todavía estaba en curso.

En 1994, finalmente se publicó el estándar ANSI Common Lisp. Difería en ciertas formas de los dialectos descritos por las dos ediciones de Common Lisp The Idioma pero reconoció la importancia práctica de ambas ediciones por sugiriendo que las palabras clave: cltl1 y: cltl2 se incluyan en las * características * lista, lo que permite agregar condicionales al código que debe interoperar entre ANSI Common Lisp y estos otros dos dialectos.

CLTL1 (como se sabe) es la historia antigua de hoy y la mayoría, si no todas, las implementaciones se han asentado en algún lugar entre ANSI y CLTL2. Sin embargo, el estándar ANSI sufrió un problema mayor que no tenía nada que hacer con el lenguaje per se; no abordó una o dos prácticas importantes Aspectos de la programación cotidiana y las discrepancias surgieron en el camino. Las implementaciones abordaron estas necesidades prácticas. Como resultado de esto (no el diferencias de lenguaje menores entre ANSI y CLTL2) los lispers hablan acerca de Código portátil frente a no portátil.

Entonces, para resumir, el lenguaje central (el conjunto fijo de 24 formas especiales [2] que Cada implementación debe incluir si quiere llamarse Common Lisp) es Absolutamente sólido y fundido en piedra, pero fallas prácticas en el ANSI Los estándares han conducido a discrepancias en la forma en que las implementaciones los compensan.

[1] SBCL se basa en el código base original de CMU, de ahí el nombre Steel Bank Common Lisp . (Carnegie era un magnate del acero y Mellon era un financiero de Wall Street).

[2] Formularios especiales comunes de Lisp

    
respondido por el sebyte 01.08.2012 - 22:06

Lea otras preguntas en las etiquetas