Lisp est un vaste et complexe de la langue, d'une grande complexité d'exécution pour le soutenir. Pour cette raison, Lisp est le mieux adapté pour les grandes et les problèmes compliqués.
Maintenant, un complexe problème n'est pas le même que d'un compliqué . Un complexe problème de est une, avec beaucoup de petits détails, mais qui n'est pas difficile. L'écriture d'un système de réservation de la compagnie aérienne est une entreprise complexe, mais avec assez d'argent et de programmeurs, il n'est pas difficile. Obtenez la différence?
Un problème compliqué est celui qui est tortueuse, où traditionnels diviser pour régner ne fonctionne pas. Pilotage d'un robot, ou de travailler avec des données qui n'est pas tabulaire (langues, par exemple), ou très dynamique des situations.
Lisp est vraiment bien adapté à des problèmes pour lesquels la solution doit être extensible; l'exemple classique est l'éditeur de texte emacs. Il est entièrement programmable et donc d'un environnement de programmation dans son propre droit.
Dans son célèbre livre PAIP, Norvig dit que Lisp est idéal pour exploratoire de programmation. Qui est, la programmation d'une solution à un problème qui n'est pas entièrement compris (par opposition à un système de réservation en ligne). En d'autres termes: des problèmes Compliqués.
En outre, l'apprentissage Lisp va vous rappeler de quelque chose de fondamental qui a été oublié: La différence entre Von Neumann et Turing. Comme nous l'avons maintenant, Turing modèle de calcul est un intéressant modèle théorique, mais inutile comme un modèle pour la conception des ordinateurs. Von Neumann, d'autre part, a conçu un modèle de la façon dont les ordinateurs et les calculs soient à exécuter: Le modèle de Von Neumann.
Centrale de Van Neumann modèle que vous avez, mais une mémoire, et de stocker votre code et de vos données. Avis attentivement qu'un programme Java (ou C#, ou ce que vous voulez) est une manifestation de Turing modèle. Vous définissez votre programme dans le béton, une fois pour toutes. Puis vous j'espère que vous pourrez traiter toutes les données qui obtient jeté sur elle.
Lisp maintient le modèle de Von Neuman; il n'est pas forte, pré-déterminé de la frontière entre le code et les données. La programmation en Lisp ouvre l'esprit à la puissance du modèle de Von Neumann. La programmation en Lisp qui vous fait voir de vieux concepts dans une nouvelle lumière.
Enfin, étant interactif, vous allez apprendre à interagir avec vos programmes que vous développez (par opposition à compiler et exécuter). Ce aussi changer la façon dont votre programme, et la façon dont vous voyez la programmation.
Avec cette intro, je peux enfin proposer une réponse à votre question: allez-vous trouver des endroits où il surpasse "traditionnel" langues?
Si vous êtes un programmeur avancé, vous avez besoin d'outils de pointe. Et il n'y a pas d'outil plus avancé que le Lisp.
Ou, en d'autres termes: La réponse est oui si vos problèmes sont difficiles. Pas autrement.