लिस्प एक बड़ी और जटिल भाषा है जिसका समर्थन करने के लिए एक बड़े और जटिल रनटाइम है। उस कारण से, लिस्प बड़ी और जटिल समस्याओं के लिए सबसे उपयुक्त है।
अब, एक जटिल समस्या एक के समान नहीं है जटिल है। एक जटिल समस्या बहुत सारे छोटे विवरणों में से एक है, लेकिन यह कठिन नहीं है। एयरलाइन बुकिंग सिस्टम लिखना एक जटिल व्यवसाय है, लेकिन पर्याप्त धन और प्रोग्रामर के साथ यह कठिन नहीं है। अंतर पाएं?
एक जटिल समस्या वह है जो जटिल है, एक जहां पारंपरिक विभाजन और जीत काम नहीं करती है। एक रोबोट को नियंत्रित करना, या डेटा के साथ काम करना जो सारणीबद्ध नहीं है (उदाहरण के लिए भाषाएँ), या अत्यधिक गतिशील परिस्थितियाँ।
लिस्प वास्तव में समस्याओं के लिए अच्छी तरह से अनुकूल है जहां समाधान का विस्तार होना चाहिए; क्लासिक उदाहरण emacs टेक्स्ट एडिटर है। यह पूरी तरह से प्रोग्राम करने योग्य है, और इस प्रकार यह अपने आप में एक प्रोग्रामिंग वातावरण है।
अपनी प्रसिद्ध पुस्तक पीएआईपी में , नॉरविग कहता है कि लिस्प खोजपूर्ण प्रोग्रामिंग के लिए आदर्श है। यही है, एक समस्या का समाधान प्रोग्रामिंग है जो पूरी तरह से समझ में नहीं आता है (जैसा कि ऑन-लाइन बुकिंग प्रणाली के विपरीत)। दूसरे शब्दों में: जटिल समस्याएं।
इसके अलावा, लिस्प सीखना आपको कुछ मौलिक याद दिलाएगा जो भूल गए हैं: वॉन न्यूमैन और ट्यूरिंग के बीच का अंतर। जैसा कि हम जानते हैं, ट्यूरिंग की गणना का मॉडल एक दिलचस्प सैद्धांतिक मॉडल है, लेकिन कंप्यूटर डिजाइन करने के लिए एक मॉडल के रूप में बेकार है। दूसरी ओर, वॉन न्यूमैन ने एक मॉडल तैयार किया कि कंप्यूटर और कम्प्यूटेशन को कैसे निष्पादित किया जाता है: वॉन न्यूमैन मॉडल। वॉन न्यूमैन मॉडल का केंद्र यह है कि आपके पास एक मेमोरी है, और अपने कोड और डेटा दोनों को वहां स्टोर करें। ध्यान से देखें कि एक जावा प्रोग्राम (या सी #, या जो भी आपको पसंद है) ट्यूरिंग मॉडल की एक अभिव्यक्ति है। आप अपना कार्यक्रम कंक्रीट में, एक बार और सभी के लिए निर्धारित करें। फिर आपको उम्मीद है कि आप उस पर फेंके गए सभी डेटा से निपट सकते हैं।
लिस्प वॉन न्यूमन मॉडल को बनाए रखता है; कोड और डेटा के बीच कोई तेज, पूर्व निर्धारित सीमा नहीं है। लिस्प में प्रोग्रामिंग आपके दिमाग को वॉन न्यूमैन मॉडल की शक्ति के लिए खोलता है। लिस्प में प्रोग्रामिंग आपको एक नई रोशनी में पुरानी अवधारणाओं को देखता है।
अंत में, सहभागी होने के नाते, आप अपने कार्यक्रमों के साथ बातचीत करना सीखेंगे क्योंकि आप उन्हें विकसित करेंगे (संकलन और चलाने के विपरीत)। यह आपके प्रोग्राम करने के तरीके और प्रोग्रामिंग को देखने के तरीके को भी बदल देता है।
इस परिचय के साथ मैं अंत में आपके प्रश्न का उत्तर दे सकता हूं: क्या आपको ऐसी जगहें मिलेंगी जहां यह "पारंपरिक" भाषाएं हैं?
यदि आप एक उन्नत प्रोग्रामर हैं, तो आपको उन्नत टूल की आवश्यकता है। और लिस्प की तुलना में अधिक उन्नत कोई उपकरण नहीं है। या, दूसरे शब्दों में: यदि आपकी समस्याएं कठिन हैं तो इसका उत्तर हां में है। नहीं तो नहीं।