ventajas urban tutorial traduccion lenguaje desventajas descargar common lisp

urban - lisp tutorial



¿Qué tiene de bueno Lisp? (7)

"Lisp es un lenguaje de programación programable".
- John Foderaro, MCCA, septiembre de 1991

Aquí está mi vista:

En la superficie, Lisp es un lenguaje de programación funcional agradable y simple. Casi no hay sintaxis, y todas las piezas encajan juntas de forma lógica.

Si profundizas un poco más, lees el SICP y escribes un evaluador metacircular, descubres dos cosas: una, el intérprete completo (dado solo unas pocas primitivas) 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 hayas absorbido esto por completo, parece que otros idiomas son inamovibles cuando solo te permiten decir algunas cosas. Lisp puede construir cualquier abstracción si puede definir sintaxis y semántica para ella.

No sé suficiente Lisp para decir si es bueno o malo. Parece que a todos los que han usado Lisp les encanta, pero los idiomas más populares actualmente descienden de C.

Entonces, ¿qué tiene Lisp que es tan bueno y por qué no se usa más? ¿Hay algo simplemente malo sobre Lisp (aparte de la cantidad incesante de paréntesis)?



"Cualquier programa C o Fortran suficientemente complicado contiene una implementación lenta, ad hoc, informalmente especificada, plagada de errores, de la mitad de Common Lisp".

Décima Regla de Greenspun




Lisp es bueno porque tiene una sintaxis muy mínima, simple y regular.

Lisp es malo porque tiene una sintaxis mínima, simple y regular.


Lisp es el Chuck Norris de los lenguajes de programación.

Lisp es la barra con la que se miden otros idiomas.

Saber Lisp demuestra la iluminación del desarrollador.

He oído hablar de 3 debilidades (y sus contraargumentos):

  1. Tipado dinámico

    Existe un argumento para los lenguajes tipados estáticos que giran en torno al proporcionar al compilador suficiente información para detectar una cierta clase de errores para que no sucedan en el tiempo de ejecución. Pero aún debes probar.

    Este artículo aboga por el tipado dinámico junto con más pruebas: mecanografía fuerte frente a pruebas fuertes .

  2. Difícil de recoger.

    En realidad, hay dos partes en esto: aprendizaje y herramientas.

    Lisp se esfuerza por "obtener" realmente, pero vale la pena, porque aprender Lisp realmente te convertirá en un mejor programador en otros idiomas. Por ejemplo, una vez que realmente "obtienes" cierres, entenderás las clases internas de Java. Y una vez que "obtienes" funciones de primera clase, estarás deprimido cada vez que uses un idioma sin ellas.

    He leído The Little Schemer y estoy leyendo Practical Common Lisp , que son excelentes.

    A continuación están las herramientas. Estoy en una Mac, así que me concentré en Aquamacs Emacs (hace que Emacs sea habitable para un novato) y en Steel Bank Common Lisp (SBCL).

  3. La falta de bibliotecas.

    No puedo asegurarlo todavía, pero lo dudo. Para construir sitios web, parece que Hunchentoot y Elephant proporcionan un buen conjunto de herramientas. Pero realmente no veo a Lispers quejándose de la falta de bibliotecas (tal vez porque Lisp es tan poderoso que simplemente no se necesitan).