Lisp è un linguaggio ampio e complesso con un runtime ampio e complesso per supportarlo. Per questo motivo, Lisp è più adatto a problemi grandi e complessi.
Ora, un problema complesso non è lo stesso di un problema complicato . Un problema complesso è quello con molti piccoli dettagli, ma che non è difficile. Scrivere un sistema di prenotazione di una compagnia aerea è un'attività complessa, ma con abbastanza soldi e programmatori non è difficile. Prendi la differenza?
Un problema complicato è quello contorto, uno in cui la divisione e la conquista tradizionali non funzionano. Controllo di un robot o utilizzo di dati non tabulari (ad esempio le lingue) o situazioni altamente dinamiche.
Lisp è davvero adatto a problemi in cui la soluzione deve essere espandibile; l'esempio classico è l'editor di testo emacs. È completamente programmabile e quindi un ambiente di programmazione a sé stante.
Nel suo famoso libro PAIP , Norvig afferma che Lisp è l'ideale per la programmazione esplorativa. Cioè, programmare una soluzione a un problema che non è del tutto chiaro (al contrario di un sistema di prenotazione online). In altre parole: problemi complicati.
Inoltre, l'apprendimento di Lisp ti ricorderà qualcosa di fondamentale che è stato dimenticato: la differenza tra Von Neumann e Turing. Come sappiamo, il modello di calcolo di Turing è un interessante modello teorico, ma inutile come modello per la progettazione di computer. Von Neumann, d'altra parte, progettò un modello di come i computer e il calcolo dovevano essere eseguiti: il modello Von Neumann. Fondamentale per il modello Von Neumann è che hai solo una memoria e memorizza sia il tuo codice che i tuoi dati. Nota attentamente che un programma Java (o C #, o qualunque cosa ti piaccia) è una manifestazione del modello di Turing. Stabilisci il tuo programma concretamente, una volta per tutte. Quindi speri di poter gestire tutti i dati che vengono generati su di esso.
Lisp mantiene il modello Von Neuman; non esiste un confine preciso e predeterminato tra codice e dati. La programmazione in Lisp ti apre la mente al potere del modello Von Neumann. La programmazione in Lisp ti fa vedere vecchi concetti sotto una nuova luce.
Infine, essendo interattivo, imparerai a interagire con i tuoi programmi mentre li sviluppi (invece di compilarli ed eseguirli). Questo cambia anche il modo di programmare e il modo di vedere la programmazione.
Con questa introduzione posso finalmente offrire una risposta alla tua domanda: troverai luoghi in cui supera le lingue "tradizionali"?
Se sei un programmatore avanzato, hai bisogno di strumenti avanzati. E non esiste uno strumento più avanzato di Lisp. Oppure, in altre parole: la risposta è sì se i tuoi problemi sono difficili. No altrimenti