PREGUNTAS FRECUENTES SOBRE LISP


¿Qué es Lisp?

Lisp es una familia de lenguajes de programación descendientes de un lenguaje que John McCarthy inventó (o más exactamente, descubrió) a finales de 1950. Los dos dialectos principales ahora son Common Lisp y Scheme. Estamos trabajando en un nuevo dialecto llamado Arc.

¿Cómo puedo aprender Lisp?

La manera de aprender cualquier lenguaje es escribir programas en este. Tienes dos dialectos principales entre los cuales elegir: Scheme y Common Lisp. Cada uno tiene ventajas y desventajas, pero las diferencias entre ellos son muy pequeñas en comparación con las diferencias entre ellos y otros lenguajes, así que si quieres empezar a aprender Lisp, no importa cuál elijas.

Hay buenos libros sobre ambos dialectos, y muchas buenas implementaciones gratis. Así que consigue un libro y una implementación, y empieza a tratar de escribir programas. Lee código fuente existente para tener una idea del estilo de Lisp. Si tienes problemas, pregunta en comp.lang.lisp. Las personas ahi siempre estan dispuestas a ayudar a los novatos.

¿Cuál debo aprender, Common Lisp o Scheme? ¿Cuál es la diferencia?

Common Lisp es potente, pero feo. Scheme es pequeño y limpio, pero el estandar unicamente define el núcleo interno del lenguaje. Si tuviera que entregar una aplicación probablemente usaría Common Lisp; si estuviera enseñando un curso podría utilizar Scheme (pero con macros Common Lisp).

¿Conoces una buena implementación, sin Lisp?

Hay varias. La implementación Common Lisp que yo uso es Clisp, pero CMUCL también es bien vista. Para hackear en Scheme uso Scheme 48 y PLT Scheme.

¿Puedes recomendar un libro a alguien que quiera aprender Lisp?

Es posible que te guste éste.

¿Hay un buen tutorial en línea para Lisp?

Comienza con el Capítulo 2 de ANSI Common Lisp, que es una breve introducción a la programación Lisp. Para más detalles, consulta el manual de referencia de Common Lisp.

Si Lisp es tan grandioso, ¿por qué no lo usa más gente?

Probablemente la causa principal sea que luce difícil, pero ayudaria si hubiera un dialecto con bibliotecas extensas.

¿Dónde puedo obtener una copia de On Lisp?

Gracias a Chip Coldwell, ahora puedes obtener un archivo PostScript del mismo en línea.

Parece que el libro sera impreso de nuevo pronto, pero si estás decidido a tener una valiosa primera edición, puedes conseguir una copia usada en Amazon.

¿Hay una segunda edición de ANSI Common Lisp?

Algunas bases de datos dicen que existe, pero no la hay, por lo menos no todavia.

¿Existe un conjunto de soluciones a los problemas en ANSI Common Lisp?

Por desgracia, no. Se suponía que debía escribir uno, pero empezamos Viaweb justo después de que el libro se fue a imprenta, y nunca la hice.

¿Dónde puedo conseguir trabajo hackeando Lisp?

Intenta con empresas que tengan aplicaciones de Lisp. O bien, podrías empezar una propia.

Me gusta Lisp, pero mi empresa no me deja usarlo. ¿Qué debo hacer?

Trata de conseguir que te permitan usar Python. A menudo, cuando tu empleador no te permite usar Lisp es porque (sea cual sea el motivo oficial) el encargado de tu departamento tiene miedo por la forma como luce el código fuente de Lisp. Python luce como un torpe lenguaje ordinario, pero semánticamente tiene mucho en común con Lisp, y con el tiempo se ha estado acercando a Lisp.

Puede ser que incluso te permitan usar Ruby, que es aún más parecido a Lisp.

¿Qué piensas de ML y sus derivados?

La mayoría de los hackers que conozco han sido decepcionados por la familia ML. Los lenguajes con tipado estático serían más adecuados si los programas fueran algo que pensaste previamente, y luego simplemente traducidos a código. Pero no es así como se escriben los programas.

La imposibilidad de tener listas de tipos mixtos es una restricción particularmente limitante. Se atraviesa en el camino de la programación de exploración (al principio es conveniente representar todo como listas), y eso significa que no puedes tener verdaderas macros.

¿Conoces a alguien que haga consultoría de AutoLisp?

No, pero Google sí.






Traducido de Lisp FAQ por Paul Graham. Traducción: Armando Alvarez