क्या एलआईएसपी का उपयोग आज भी दुनिया में किया जाता है, या यह एक विरासत भाषा है
हां, यह है, लेकिन आपको यह जानना होगा कि कहां देखना है। जो लोग LISP का उपयोग करते हैं, वे इसके बारे में बहुत जोर से चिल्लाने की प्रवृत्ति नहीं रखते हैं, लेकिन पिछले 20 वर्षों में इसका उपयोग करने वाले कुछ हाई-प्रोफाइल स्टार्टअप के उदाहरण हैं। यह यूरोप में छोटी कंपनियों के साथ भी बहुत लोकप्रिय है।
सबसे व्यापक रूप से बोली जाने वाली बोली कौन सी है?
यह एक वैध प्रश्न है, लेकिन इसका उत्तर देना आसान नहीं है। यह जवाब देने के लिए विशेष रूप से उपयोगी नहीं भी हो सकता है: कई कार्यान्वयनों पर एक विशिष्ट ध्यान केंद्रित किया जाता है, इसलिए सबसे अच्छा चुना जाता है यदि वे आपकी विशेष समस्या को फिट करते हैं बजाय इसके कि व्यापक रूप से इसका उपयोग कैसे किया जाए। इसके बजाय, मैं आपको अपने विकल्पों के बारे में थोड़ा बताऊंगा और आप अपने लिए निर्णय ले सकते हैं।
LISP भाषाओं का एक परिवार है और उन भाषाओं में से प्रत्येक में बोलियों और कार्यान्वयन का एक परिवार है। मोटे तौर पर बोलियाँ दो शिविरों "LISP" और "स्कीम्स" में आती हैं।
LISP: अपेक्षाकृत हाल तक, आम LISP राजा था। यह सभी असमान एलआईएसपी को एकजुट करने का एक प्रयास था और बिना निर्दोष हुए, एलआईएसपी का "सी ++" था। यह कहना है, यह एक बड़ी भाषा थी। इसमें सब कुछ था। पिछले कुछ वर्षों में, क्लोजर दिखाई दिया है। क्लोजर एक एलआईएसपी है जो जावा वर्चुअल मशीन पर चलता है और एक कार्यात्मक प्रोग्रामिंग दर्शन में खुद को जड़ देने की कोशिश करता है। परंपरागत रूप से, अन्य LISPs कड़ाई से बहु प्रतिमान रहे हैं। क्लोजर दिलचस्प है क्योंकि यह LISP और JVM दोनों के सबसे अच्छे और सबसे खराब दोनों तरह से मिलता है। अभी भी जावा-आधारित भाषाओं की बहुत अधिक संख्या है और वे वाक्यविन्यास के साथ काफी स्वतंत्र और आसान हैं, ताकि विभिन्न चीजों के लिए बहुत सारे नॉब्स और बटन हैं, लेकिन उन्हें वास्तव में कुछ मिल गया हैडेटाटाइप्स के आसपास दिलचस्प विचार, विशेष रूप से कुछ व्यावहारिक तरीके जो वे कार्यात्मक प्रोग्रामिंग से विचारों को लागू करने के लिए आए हैं।
योजनाएँ: योजनाएँ LISPs का एक सख्त उपसमुच्चय हैं। स्कील का आविष्कार स्टील और सुस्मान द्वारा किया गया था और प्रारंभिक जीवन में एमआईटी कम्प्यूटिंग 101 ल्यूरियर कोर्स में इस्तेमाल होने के लिए उल्लेखनीय था। योजना को "संशोधित ^ n रिपोर्ट पर एल्गोरिथम भाषा योजना (RnRS)" में परिभाषित किया गया है। हाँ: वे वहाँ एक गणित मजाक है योजना एक तरह से मानकीकृत भाषा है जो अन्य LISPs नहीं हैं। यह कार्यान्वयन के बीच पोर्टेबिलिटी के साथ बहुत मदद करता है, लेकिन यह एक चांदी की गोली नहीं है। मानकीकरण के प्रयासों को परंपराओं में रूढ़िवादी और नवाचारों के रूप में विकसित किया गया है, विशेष रूप से मॉड्यूल जैसी चीजों के बारे में, असमान होने की प्रवृत्ति है। SRFIs (स्कीम रिक्वेस्ट फ़ॉर इंप्लीमेंटेशन) की एक श्रृंखला भी है जो IETF की RFC प्रक्रिया के समान है। लोग जरूरत के अनुसार छोटी चीजों का मानकीकरण करने के लिए इसका उपयोग करते हैं।
योजनाएं LISPs से भिन्न होती हैं कि उनके पास कठिन आवश्यकताओं का एक सेट होता है जिसे उन्हें संतुष्ट करना चाहिए, जिनमें से एक "टेल कॉल ऑप्टिमाइज़ेशन" है जो पुनरावृत्ति को कुशल बनाने में मदद करता है। इसलिए, LISP की तुलना में योजना में प्रोग्रामिंग की पुनरावर्ती शैली बहुत अधिक लोकप्रिय हैं। योजना है, बिना निर्दयी हुए भी, LISP के "C" की तरह। यह कहना है, यह एक छोटी सी भाषा है और आप इसे एक ही बार में अपने सिर पर रखने में सक्षम होना चाहिए।
वर्तमान में दो योजना परिवार हैं: वे 5 वें संस्करण (आर 5 आरएस) और 6 वें संस्करण (आर 6 आरएस) पर आधारित हैं। R6RS की जटिलता उसके पूर्ववर्तियों की तुलना में बेतहाशा अधिक थी और इसलिए R5RS के कई कार्यान्वयनों ने इसे छोड़ने का विकल्प चुना है, उम्मीद है कि R7RS R6RS की तुलना में R5RS के समान होगा। R7RS मानकीकरण प्रक्रिया वर्तमान में चल रही है और दोनों R5RS कार्यान्वयनकर्ताओं की इच्छाओं के साथ-साथ R6RS के लोगों को अपने पहले कार्य समूह में एक छोटी आधार भाषा का मानकीकरण करने और फिर बड़ी विशेषताओं को मानकीकृत करने के लिए एक दूसरे समूह समूह को शामिल करने की कोशिश की है। यह भाषा को छोटे एम्बेडेड हार्डवेयर के साथ-साथ अधिक सक्षम मशीनों पर कुशल और उपयोगी कार्यान्वयन करने की अनुमति देगा।
अब मैं और विशिष्ट हो जाऊंगा:
PicoLisp एक वास्तव में, बहुत अच्छा LISP है। यह छोटा है! यह लेखक ने इसे खुद के लिए लिखा है और जैसा कि मैं इसे समझता हूं, वह 1980 के दशक से इसे बंद कर रहा है। यदि आपको कभी उसके द्वारा किसी बात में उपस्थित होने का अवसर मिलता है, तो आपको यह करना चाहिए: वह वास्तव में दिलचस्प है और वास्तव में उसका सामान जानता है और आपको किसी भी मुख्यधारा या उबाऊ चीज़ का सबसे छोटा सूँघने की भी ज़रूरत नहीं होगी।
मैं आम लिस्प कार्यान्वयनों से परिचित नहीं हूं इसलिए मैं उन पर आगे टिप्पणी नहीं करूंगा।
Guile आधिकारिक GNU योजना है।
रैकेट एक R6RS योजना है, लेकिन हाल ही में ऐसा लगता है कि इसने जाल को चौड़ा कर दिया है और "भाषा निर्माण, डिजाइन और कार्यान्वयन के लिए एक मंच के रूप में सेवा करने की कोशिश कर रहा है।"
चिकन का उद्देश्य व्यावहारिक योजना है। यह R5RS पर आधारित है और सी के लिए नीचे संकलित है। यह वास्तव में, वास्तव में, महत्वपूर्ण लाभ के रूप में निकलता है क्योंकि यह मौजूदा सी पुस्तकालयों का उपयोग करने के लिए बिल्कुल तुच्छ बनाता है। इसलिए, पेरल, पायथन, रूबी, आदि को बदलने के लिए चिकन संभवतः सबसे उपयोगी योजना है, जैसा कि आपकी दिन-प्रतिदिन की स्क्रिप्ट भाषा। ऐसे कई लोग हैं जिन्होंने कई वर्षों से अपनी सभी जरूरतों के लिए विशेष रूप से इसका उपयोग किया है। इसमें संवादात्मक REPL के साथ-साथ संकलक भी है। समुदाय (मेलिंग सूची और IRC दोनों) जानकार, मिलनसार और मददगार हैं।
बहुत सारे मॉड्यूल के साथ कार्यान्वयन के लिए देखें: यह दिखाता है कि यह व्यापक रूप से प्रयोग करने योग्य है और इसका मतलब है कि इसमें कुछ ऐसा होने की संभावना है जो हाथ में काम के साथ मदद करता है।
एक कंपाइलर के साथ या बहुत कम से कम, कुछ ऐसा है जो सख्ती से IDE या REPL आधारित नहीं है, के कार्यान्वयन के लिए देखें। शिक्षण के लिए डिज़ाइन किए गए बहुत सारे कार्यान्वयन सामान्य प्रयोजन स्क्रिप्टिंग के लिए उपयोग करना बहुत मुश्किल है।
मैं चिकन की सलाह दूंगा जैसा कि मैं उपयोग करता हूं। मैंने इसे अपनी व्यक्तिगत परियोजनाओं में उपयोग किया है और मैंने इसका इस्तेमाल किया है (और वर्तमान में इसका उपयोग कर रहा हूँ)।
मैं किसी चीज में अनुचित प्रयास नहीं करना चाहता हूं अगर वह पूरी तरह से अप्रचलित है - मैं अभी भी इसे सीखूंगा यदि यह पेशेवर "मृत" था, लेकिन केवल एक शैक्षणिक दृष्टिकोण के साथ ...
योजना पेशेवर रूप से मृत नहीं है, लेकिन आपको उस संदर्भ में इसका उपयोग करने के लिए कुछ लंबाई तक जाना पड़ सकता है। चिकन की तरह कुछ एक अकादमिक खोज से कहीं अधिक है और यह आपके द्वारा वर्तमान में उपयोग की जाने वाली उच्च-स्तरीय भाषाओं के लगभग सभी आधारों को आसानी से कवर कर सकता है।