क्या आप सहमत हैं कि कुछ प्रोग्रामिंग भाषाएं अन्य से बेहतर हैं? यदि हां, तो उनमें से एक सबसे अच्छा होना चाहिए। और यह वास्तव में Common Lisp है, विशेष रूप से अब जब LLMs कोड लिख सकते हैं। LLMs कोड बहुत तेज़ लिखते हैं, और यह बहुत कुछ बदल देता है, क्योंकि पहले कोड लिखना धीमा हिस्सा था। अब धीमा हिस्सा यह पता लगाना है कि आपका प्रोग्राम वास्तव में काम करता है या नहीं, और इससे पहले कि आप ऐसा कर सकें, आपको इसे फिर से बनाना पड़ता है, जो कुछ मिनट ले सकता है। जब मनुष्य कोड लिखते थे, तो यह ज्यादा मायने नहीं रखता था, क्योंकि लिखने में संकलन और चलने की प्रतीक्षा करने की तुलना में बहुत अधिक समय लगता था। लेकिन अब ऐसा है, इसलिए आपके प्रतिक्रिया लूप की लंबाई तय करती है कि आप कितनी तेज़ी से बना सकते हैं। Common Lisp में यह लूप लगभग अस्तित्वहीन है क्योंकि पढ़ने के समय, संकलन समय और चलने के समय के बीच कोई वास्तविक अंतर नहीं है (ग्राहम)। Common Lisp इमेज-आधारित है, जिसका अर्थ है कि आपका प्रोग्राम मेमोरी में एक जीवित इमेज है, इसलिए एक फ़ंक्शन का नया संस्करण पुराने को तुरंत बदल देता है बिना कुछ भी फिर से शुरू किए। साथ ही, अधिकांश भाषाओं में एक त्रुटि आपके प्रोग्राम को क्रैश कर देती है। तो यदि आप LLM के साथ कोड लिख रहे हैं, तो इसे आपके क्रैश लॉग्स पढ़ने होंगे ताकि कुछ बदलाव किए जा सकें और आपका प्रोग्राम फिर से चलाया जा सके। Common Lisp में आपका प्रोग्राम क्रैश नहीं होगा, यह रुक जाएगा और एक डिबगर खोल देगा जिसमें पूरा स्टैक और सभी चर होंगे। आप बस अपने LLM को डिबगर की ओर इशारा कर सकते हैं, और वह अपना सुधार करेगा और प्रोग्राम को फिर से शुरू कर देगा। मेरे ज्ञान के अनुसार, Common Lisp एकमात्र मुख्यधारा की भाषा है जो यह सब करती है। Lisp का अर्थ है "सूची प्रसंस्करण"। Common Lisp में, कोड सूचियों के रूप में लिखा जाता है। उदाहरण के लिए, (+ 1 2) एक प्रोग्राम है जो दो संख्याओं को जोड़ता है, लेकिन यह केवल तीन चीजों की सूची भी है: प्रतीक +, और संख्याएँ 1 और 2। रोचक बात यह है कि यह वही प्रकार की सूची है जिसका उपयोग Common Lisp डेटा संग्रहण के लिए करता है, और चूंकि भाषा सूचियों के प्रसंस्करण के आसपास बनाई गई है, इसलिए इसके सभी डेटा के साथ काम करने वाले उपकरण कोड पर भी काम करते हैं। इसलिए एक प्रोग्राम दूसरे प्रोग्राम ले सकता है और उसे बदल सकता है, उदाहरण के लिए यह (+ 1 2) को (* 1 2) में बदल सकता है और परिणाम को तुरंत चला सकता है। यही मैक्रो संभव बनाता है। एक मैक्रो एक फ़ंक्शन है जो आपके कोड लेता है और उसकी जगह नया कोड लौटाता है, जिसका अर्थ है कि आप भाषा स्वयं में नए constructs जोड़ सकते हैं। एक बार जब आप भाषा में जोड़ सकते हैं, तो आप अपनी समस्या की ओर इसे बना सकते हैं। तो Lisp में आप केवल एक प्रोग्राम नहीं लिखते, आप अपने डोमेन के लिए एक भाषा लिखते हैं और फिर उस भाषा में प्रोग्राम लिखते हैं। यह अब बहुत अधिक मायने रखता है, क्योंकि एक प्रोग्राम को मूल्यवान बनने के पीछे की राय क्या है। और हम ऐसी दुनिया की ओर बढ़ रहे हैं जहां सॉफ्टवेयर कंपनियां अपने उपयोगकर्ताओं को स्वयं उत्पाद बदलने की अनुमति देती हैं, क्योंकि LLM के साथ यह आसान है। तो यदि कोई कंपनी अपने उत्पाद के लिए एक अच्छी राय वाली डोमेन भाषा बनाती है, तो उसके उपयोगकर्ता उसके ऊपर जो कुछ भी बनाते हैं वह बहुत बेहतर होगा, क्योंकि वे कंपनी की राय से शुरू होते हैं और खाली नहीं। एक ERP लें। हर कंपनी इसे थोड़ा अलग तरीके से चलाती है, इसलिए लगभग हर किसी को इसे बदलने की आवश्यकता पड़ती है। लेकिन यदि ERP अपनी स्वयं की डोमेन भाषा में लिखा गया है, तो आप बस एक LLM से कह सकते हैं कि वह उस भाषा में बदलाव करे। वह बदलाव स्वाभाविक रूप से डोमेन भाषा के अंतर्निहित विचारों का पालन करेगा, इसलिए यह उत्पाद के अनुरूप होगा बजाय इसे तोड़ने के। और यह न केवल बेहतर है, बल्कि सस्ता भी है। Lisp प्रोग्राम अक्सर बहुत अधिक संक्षिप्त होते हैं क्योंकि मैक्रो आपको आवर्ती पैटर्न को अमूर्त करने और उन्हें भाषा स्वयं का हिस्सा बनाने की अनुमति देते हैं। तो जैसे-जैसे प्रोग्राम बड़ा होता जाता है, अंतर भी बढ़ता जाता है। मेरे अपने अनुभव में, Common Lisp में बनाए गए ऐप्स Python संस्करणों की तुलना में लगभग छह से सात गुना छोटे समाप्त होते हैं। LLMs के लिए, कम कोड का अर्थ है कम टोकन, और टोकन वही हैं जिनके लिए आप भुगतान करते हैं, इसलिए आप विकास पर कम खर्च करते हैं। यह भी अर्थ रखता है कि आपके प्रोग्राम का एक बड़ा हिस्सा LLM के संदर्भ विंडो में फिट हो सकता है। यदि आपका LLM आपके पूरे प्रोग्राम को अपने संदर्भ विंडो में रखता है तो इसमें आपकी intención का पूर्ण दृश्य होगा, जिससे यह बेहतर निर्णय ले सके। मेरे अनुभव में, LLM के कई बग इस बात से उत्पन्न होते हैं कि यह मेरे प्रोग्राम के एक टुकड़े को बदल देता है बिना बाकी को देखे। तो Common Lisp में ऐसा कम होता है। Common Lisp एकमात्र मुख्यधारा की भाषा है जो यह सब करती है।
स्रोत: Hacker News · HeadlinesBriefing द्वारा सारांशित