Lisp adalah bahasa yang besar dan kompleks dengan runtime yang besar dan kompleks untuk mendukungnya. Untuk alasan itu, Lisp paling cocok untuk masalah besar dan rumit.
Sekarang, masalah yang rumit tidak sama dengan masalah yang rumit . Masalah yang kompleks adalah masalah dengan banyak detail kecil, tetapi itu tidak sulit. Menulis sistem pemesanan maskapai adalah bisnis yang kompleks, tetapi dengan cukup uang dan programmer tidak sulit. Dapatkan perbedaannya?
Masalah yang rumit adalah masalah yang berbelit-belit, masalah di mana pemisahan dan penaklukan tradisional tidak berhasil. Mengontrol robot, atau bekerja dengan data yang tidak tabular (bahasa, misalnya), atau situasi yang sangat dinamis.
Lisp sangat cocok untuk masalah di mana solusinya harus diperluas; contoh klasiknya adalah editor teks emacs. Ini sepenuhnya dapat diprogram, dan dengan demikian lingkungan pemrograman dengan haknya sendiri.
Dalam bukunya yang terkenal PAIP , Norvig mengatakan bahwa Lisp sangat ideal untuk pemrograman eksplorasi. Yaitu, pemrograman solusi untuk masalah yang tidak sepenuhnya dipahami (sebagai lawan dari sistem pemesanan online). Dengan kata lain: Masalah rumit.
Selanjutnya, mempelajari Lisp akan mengingatkan Anda tentang sesuatu yang mendasar yang telah dilupakan: Perbedaan antara Von Neumann dan Turing. Seperti kita ketahui, model komputasi Turing adalah model teoretis yang menarik, tetapi tidak berguna sebagai model untuk mendesain komputer. Von Neumann, di sisi lain, merancang model bagaimana komputer dan komputasi dijalankan: Model Von Neumann. Inti dari model Von Neumann adalah Anda hanya memiliki satu memori, dan menyimpan kode dan data Anda di sana. Perhatikan baik-baik bahwa program Java (atau C #, atau apa pun yang Anda suka) adalah manifestasi dari model Turing. Anda mengatur program Anda dalam beton, sekali dan untuk semua. Maka Anda berharap dapat menangani semua data yang dilemparkan ke sana.
Lisp mempertahankan model Von Neuman; tidak ada batas yang tajam dan ditentukan sebelumnya antara kode dan data. Pemrograman dalam Lisp membuka pikiran Anda akan kekuatan model Von Neumann. Pemrograman dalam Lisp membuat Anda melihat konsep lama dengan cara baru.
Akhirnya, karena bersifat interaktif, Anda akan belajar berinteraksi dengan program saat mengembangkannya (bukan kompilasi dan jalankan). Ini juga mengubah cara Anda memprogram, dan cara Anda melihat pemrograman.
Dengan intro ini saya akhirnya dapat menawarkan balasan untuk pertanyaan Anda: Apakah Anda akan menemukan tempat-tempat yang mengalahkan bahasa "tradisional"?
Jika Anda seorang programmer tingkat lanjut, Anda memerlukan alat-alat canggih. Dan tidak ada alat yang lebih maju dari Lisp. Atau, dengan kata lain: Jawabannya adalah ya jika masalah Anda sulit. Tidak sebaliknya.