“Lisp es un lenguaje de programación programable.”
- John Foderaro, CACM, Septiembre de 1991
Aquí es mi opinión:
En la superficie, Lisp es un buen , lenguaje de programación funcional simple. Casi no hay sintaxis, y todas las piezas encajan juntas de forma lógica.
Si se mira un poco más profundo, leer SICP, y escribe un evaluador metacircular, a descubrir dos cosas: una, todo el intérprete (dado sólo unos primitivos) es apenas una página de código, y dos, la relación entre código y datos permite elegantes técnicas de programación.
Una vez que haya absorbido completamente este, se siente como otros idiomas están escritas en piedra cuando sólo le permiten decir algunas cosas. Lisp puede construir cualquier abstracción en absoluto si se puede definir la sintaxis y la semántica para ello.
"La mayoría de los lenguajes populares hoy en día son descendientes de C" sólo superficialmente. Si nos fijamos en las características en lugar de solo usar llaves, descubrirá que los lenguajes modernos no están tan lejos de Lisp, y cada vez más cerca. Un programa en C# o Python o Ruby, por ejemplo, se verá mucho más como Lisp de lo que le va a gustar C. – Ken
Un buen ejemplo de un lenguaje que se parece a C, pero actúa más como Lisp es JavaScript. Mucho de su diseño es similar a Scheme. – JAL
Buen punto, Ken: cada vez más funciones que solían ser exclusivas de Lisp (funciones de primera clase, funciones como datos, incluso macros) están llegando a otros idiomas. Y la retroalimentación no es unidireccional: Lisp está desarrollando nuevas técnicas y modismos en reconocimiento de otros lenguajes (por ejemplo, CLOS en respuesta al éxito del paradigma orientado a objetos). – itowlson