Lisp es un lenguaje grande y complejo con un tiempo de ejecución grande y complejo para admitirlo. Por esa razón, Lisp es el más adecuado para problemas grandes y complicados.
Ahora, un problema complejo no es lo mismo que uno complicado . Un problema complejo es uno con muchos pequeños detalles, pero que no es difícil. Escribir un sistema de reserva de aerolíneas es un negocio complejo, pero con suficiente dinero y programadores no es difícil. Obtener la diferencia?
Un problema complicado es uno complicado, uno en el que la división y conquista tradicional no funciona. Controlar un robot o trabajar con datos que no son tabulares (por ejemplo, idiomas) o situaciones muy dinámicas.
Lisp está realmente bien adaptado a problemas donde la solución debe ser expandible; El ejemplo clásico es el editor de texto emacs. Es totalmente programable y, por lo tanto, un entorno de programación en sí mismo.
En su famoso libro PAIP , Norvig dice que Lisp es ideal para la programación exploratoria. Es decir, programar una solución a un problema que no se comprende completamente (a diferencia de un sistema de reserva en línea). En otras palabras: problemas complicados.
Además, aprender Lisp te recordará algo fundamental que se ha olvidado: la diferencia entre Von Neumann y Turing. Como sabemos, el modelo de computación de Turing es un modelo teórico interesante, pero inútil como modelo para diseñar computadoras. Von Neumann, por otro lado, diseñó un modelo de cómo se ejecutarían las computadoras y la computación: el modelo de Von Neumann. Lo central del modelo de Von Neumann es que solo tiene una memoria y almacena allí tanto su código como sus datos. Observe cuidadosamente que un programa Java (o C #, o lo que quiera) es una manifestación del modelo de Turing. Establece su programa en concreto, de una vez por todas. Entonces espera poder manejar todos los datos que se le agreguen.
Lisp mantiene el modelo de Von Neuman; No existe un límite nítido y predeterminado entre el código y los datos. La programación en Lisp le abre la mente al poder del modelo Von Neumann. La programación en Lisp te hace ver viejos conceptos bajo una nueva luz.
Finalmente, al ser interactivo, aprenderá a interactuar con sus programas a medida que los desarrolle (en lugar de compilar y ejecutar). Esto también cambia la forma en que programa y la forma en que ve la programación.
Con esta introducción, finalmente puedo ofrecer una respuesta a su pregunta: ¿Encontrará lugares donde supere a los idiomas "tradicionales"?
Si eres un programador avanzado, necesitas herramientas avanzadas. Y no hay herramienta más avanzada que Lisp. O, en otras palabras: la respuesta es sí si sus problemas son difíciles. No lo contrario.