2010-09-16 15 views
6

En el pasado, LISP era el único lenguaje de programación funcional poderoso, por lo que yo entiendo. Ahora hay muchos, ¿por qué la gente todavía usa LISP con su sintaxis extraña? ¿Existe un rasgo asesino único de un tipo?Por qué usar LISP hoy, cuando hay Scala, Erlang, Haskell etc.

+4

Hoy en día, las personas usan Lisp, no LISP. Los dialectos más utilizados son Common Lisp, Scheme y Clojure. – Svante

+17

Espera, ¿lo estás comparando con Scala, Erlang, Haskell, y crees que * Lisp * tiene "sintaxis extraña"? :-) – Ken

+2

Si bien la sintaxis de Lisp puede ser inusual si proviene de un entorno C'ish, en realidad tiene la sintaxis más regular de cualquier idioma que haya visto. C, Java, etc. todos tienen una amplia variedad de reglas de sintaxis para lo que sea conveniente en ese momento, en lisp la sintaxis es AST (esencialmente) por lo que es increíblemente regular. – asm

Respuesta

11

Primero, Lisp en general y Common Lisp en particular es más "multi-paradigma" que "funcional". A partir de ahora, voy a discutir principalmente Common Lisp (CL).

Sin embargo, no existe una "función asesina". CL es un lenguaje de programación programable, lo que facilita la meta-programación. Es decir, normalmente puede hacer cosas de "meta-nivel" directamente en el idioma en lugar de tener que buscar un pre-procesador que realice la transformación textual en su idioma base.

CL también tiene un subsistema de objeto (CLOS) muy poderoso, que hasta ahora ha sido compatible con todo lo que he querido hacer con jerarquías y/o métodos de clase.

En lo que respecta a la sintaxis, supongo que es un poco diferente de la sintaxis más clásica de los idiomas de la "familia Algol", pero no es más y posiblemente menos extraño que APL.

8

Hay una única característica asesina. Se llama un macro-sistema. Con las macros puede ampliar su idioma y hace que sea muy fácil hacer excelentes DSL. Este tipo de cosas sería difícil (y no tan agradable) implementar con Scala, Erlang o Haskell.

La sintaxis o la falta de ella es lo que realmente le gusta a los parceros porque ofrece una gran uniformidad que es algo que falta en muchos idiomas. Para un programador C o Java estándar, la sintaxis de Erlang o Haskell es extraña también, así que lo que es peor acerca de la sintaxis es que se ve extraño.

Otra pregunta que debe responder es por qué son los otros idiomas mejores que Lisp, ¿qué función le falta a Lisp?

Pero, por supuesto, muchos idiomas modernos aprenden mucho de Lisp y hay muchos más idiomas que se pueden usar para el mismo problema.

No olvides que Lisp no es un idioma en el que hay diferentes tipos de dialectos Lisp. Scheme, Common Lisp o Clojure y todos tienen enfoques diferentes.

Por lo tanto, la pregunta qué idioma utilizar solo puede responderse probándolos, cada uno tiene algo muy especial sobre ellos. Erlang con los actores, Haskell y Scala tienen estos tipos de sistemas locos, Lisps tienen macro-sistemas increíbles ...

+1

Hay Lisp Flavoured Erlang (LFE) que proporciona la sintesis lisp trayendo macros a Erlang. – boring

Cuestiones relacionadas