सॉफ्टवेयर इंजीनियरिंग को AI के लिए अनुकूलित करना | मूल, AI द्वारा अनुवादित
सामग्री सूची
- AI के लिए सॉफ्टवेयर इंजीनियरिंग को अनुकूलित करना
- AI-First विकास के लिए फ्लैट आर्किटेक्चर
- AI-ड्राइवन वर्कफ्लो में Python के फायदे
- कंटेक्स्ट इंजीनियरिंग और टोकन अनुकूलन
- AI सहायता के लिए कोड संरचना
- एक मैनुअल AI एजेंट के रूप में सफल होना
- एंटरप्राइज वातावरण में AI टूल्स के साथ काम करना
- टूल चयन और कंटेक्स्ट प्रबंधन
- पुन: उपयोग योग्य प्रॉम्प्ट सिस्टम बनाना
- Java विकास के लिए Python का उपयोग करना
- Java प्रोजेक्ट समर्थन के लिए Python स्क्रिप्ट
- क्रॉस-लैंग्वेज विकास रणनीतियाँ
- AI-सहायता प्राप्त कोड जनरेशन
- AI युग में प्रोग्रामिंग भाषाएँ
- Python, Rust, और Java का भविष्य
- प्रदर्शन बनाम सरलता के ट्रेड-ऑफ
- भाषा विकास और AI एकीकरण
AI के लिए सॉफ्टवेयर इंजीनियरिंग को अनुकूलित करना
इस ब्लॉग में, मैंने अनुवाद, प्लेग्राउंड, फ्रंटमैटर रखरखाव, और टेलिग्राम बॉट्स सहित कई स्क्रिप्ट्स का उपयोग किया है। मुझे लगता है कि यह विकास दृष्टिकोण AI के लिए अनुकूलित सॉफ्टवेयर इंजीनियरिंग का भविष्य का प्रतिनिधित्व कर सकता है।
मैं Python मॉड्यूल फंक्शनलिटी पर बहुत निर्भर नहीं करता, न ही मैं एक बड़े Java Spring प्रोजेक्ट की तरह कोड संरचना बनाना चाहता हूँ।
मेरे करियर में मैंने कई सॉफ्टवेयर प्रोजेक्ट्स पर काम किया है। मैंने प्रभावशाली बैंकिंग आर्किटेक्चर, माइक्रोसर्विसेज, प्रभावी मल्टी-कंट्री डिज़ाइन जो डुप्लिकेशन को कम करते हैं, Spring पर बने मजबूत फाउंडेशनल फ्रेमवर्क, और केंद्रीकृत कॉन्फ़िगरेशन के साथ मजबूत गवर्नेंस देखा है।
हालांकि ये बैंकिंग आर्किटेक्चर प्रभावशाली हैं, अगर हम आज से शुरू करते, तो मैं LLM और AI के लिए अनुकूलन करने का विचार करूंगा। इसमें बेहतर कंटेक्स्ट इंजीनियरिंग, सुधारित कंसर्न के अलगाव, और मानव-केन्द्रित डिज़ाइन के बजाय AI-फर्स्ट थिंकिंग को प्राथमिकता देना शामिल है। हालाँकि Spring कई परतें और अच्छी एब्स्ट्रैक्शन प्रदान करता है, लेकिन LLM और AI के लिए इसे नेविगेट करना मुश्किल हो सकता है।
मुझे लगता है कि हमें फ्लैटर संरचनाओं के लिए प्रयास करना चाहिए, जैसे एक फ्लैट संगठन। इसका मतलब है कि सिर्फ दो स्तर का उपयोग करना: पहला स्तर दूसरे स्तर को कॉल करता है। एक फंक्शन में, यह बेहतर है कि आप सीधे 50 फंक्शन को कॉल करें, बजाय 50 नैस्टेड स्तरों या स्टैक्स के। AI/LLM अत्यधिक जटिल, नैस्टेड संरचनाओं का मूल्यांकन या अनुमान लगाने में संघर्ष करते हैं, लेकिन वे 100 से 200 लाइनों के छोटे फंक्शन्स को संभालने में उत्कृष्ट हैं। Python अन्य फाइलों से कॉल और इम्पोर्ट करने के लिए अच्छी तरह से अनुकूलित है।
Python कोड Java से आसान होने का एक कारण यह है कि इसका डिपेंडेंसी प्रबंधन सरल है। आपको बस pip install
का उपयोग करके एक डिपेंडेंसी जोड़नी होती है। Maven के साथ, आपको POM XML फाइल में डिपेंडेंसी लिखनी होती है और फिर mvn compile
चलाना होता है ताकि Maven डिपेंडेंसी डाउनलोड कर सके।
Python की सरलता का एक और कारण यह है कि इसका कोड सीधे बिना किसी परेशानी के चलाया जा सकता है।
हालाँकि Java 11 से, java
कमांड एकल-फाइल स्रोत-कोड प्रोग्रामों को सीधे चलाने में सक्षम है, बिना javac
का उपयोग करके उन्हें अलग से कॉम्पाइल किए। हालाँकि, अक्सर Java प्रोजेक्ट्स बड़े होते हैं, इसलिए आपको उन्हें mvn spring-boot:run
के साथ कुछ प्रॉपर्टी कॉन्फ़िगरेशन के साथ चलाना पड़ता है।
तीसरा कारण यह है कि Python का मॉड्यूल डिज़ाइन सरल है; आप from
और import
का उपयोग करके आसानी से अन्य फाइलों से कोड इम्पोर्ट कर सकते हैं।
वर्तमान में, कई AI चैटबॉट्स सीधे चैटबॉट विंडो में Python कोड चलाने में सक्षम हैं, जैसे Grok।
100 Java फाइलों की तुलना, जिनमें से हर एक में लगभग 1000 लाइनों का कोड है, कुछ सरल Python स्क्रिप्ट्स के साथ करना न्यायोचित नहीं है। इस तरह के प्रोजेक्ट के लिए, मैं 1000 Python फाइलों को पसंद करूंगा, जिनमें से हर एक में लगभग 100 लाइनों का कोड है।
कोड के लाइनों या एक फंक्शन को संपादित करने के लिए चयन करना स्वीकार्य है। हालाँकि, आपको यह जानना होगा कि कहाँ से चयन करना है। क्यों न इस कार्य को AI द्वारा संभाला जाए ताकि हमारी जिंदगी आसान हो जाए? इसलिए, हमें बस “सभी चयनित करें” का उपयोग करके सभी कोड को चयनित करना चाहिए और AI/LLM को संपादन करने के लिए कहना चाहिए।
Python के लिए, यह if __name__ == "__main__":
का उपयोग करके फाइलों में फंक्शन चलाने और परीक्षण करने के लिए आसान है। अन्य Python फाइलों के लिए भी इस फाइल के भीतर फंक्शन को कॉल करने के लिए आसान है, बिना परीक्षण चलाने की आवश्यकता के।
यह AI के लिए अनुकूलित कंटेक्स्ट इंजीनियरिंग है। क्या हम इसे अन्य तरीकों से कर सकते हैं? AI/LLM ऑटो-रीग्रेसिव है। हालाँकि, जब हम Copilot या Claude Code का उपयोग करते हैं, तो हमें पता नहीं चलता है कि AI सॉफ्टवेयर एजेंट हमें कैसे मदद करता है। उन्हें इसके बारे में सोचना चाहिए, न कि हम।
क्या हम उपयोगकर्ता के पक्ष से कोड को विशेष रूप से टोकन उपयोग को कम करने के लिए व्यवस्थित कर सकते हैं? इस बिंदु के लिए, 1000 Python फाइलों के साथ, हर एक में 100 लाइनों का कोड, इस उद्देश्य के लिए अच्छा है। क्योंकि आप आसानी से फंक्शन और कोड फाइलों की जांच कर सकते हैं, इससे पहले कि अन्य Python कोड उन्हें कॉल करे।
लेकिन एक समस्या यह है कि अगर आप कई कोड फाइलों को एक साथ बदलना चाहते हैं, तो यह आसान नहीं है। एक सरल तरीका यह है कि आप कोड को AI चैटबॉट्स में कॉपी करें और उन्हें बताएं कि इन फाइलों में कोड को कैसे संपादित करना है।
शायद हमें फंक्शन या लॉजिक को अलग करने के लिए लाइनों की संख्या का उपयोग करने की आवश्यकता नहीं है। लेकिन हमें छोटे फंक्शन में लॉजिक को अलग करना चाहिए। हम इसे प्राकृतिक रूप से लॉजिक के प्रकार के अनुसार अलग करके कर सकते हैं, जिससे वे छोटे लगते हैं।
हम AI के लिए अनुकूलित सॉफ्टवेयर इंजीनियरिंग क्यों चाहते हैं? क्योंकि AI शक्तिशाली है, हमें सब कुछ AI के लिए अनुकूलित करना चाहिए और फिर AI को सॉफ्टवेयर इंजीनियरिंग में जितना हो सके उतना मदद करने दें।
यह सिर्फ कोड के लिए ही संभव नहीं है, बल्कि किसी भी टेक्स्ट के लिए भी है। मान लीजिए हम बहुत चयनात्मक संपादक हैं; हम नहीं चाहते कि AI हमारे बड़े टेक्स्ट को एक बार में संपादित करे। हम पेराग्राफ द्वारा पेराग्राफ जांचना चाहते हैं। कोड के लिए, हम छोटे त्रुटियों या बग्स को सहन कर सकते हैं। टेक्स्ट के लिए, हम उन्हें सहन कर सकते हैं क्योंकि अधिकांश पाठक इतने चयनात्मक नहीं होते।
लेकिन कोड अलग है, क्योंकि कभी-कभी एक छोटी सी त्रुटि भी एक बड़े प्रोजेक्ट के पूरी तरह से विफल होने का कारण बन सकती है।
XML या YAML फाइलों के लिए, शायद हमें उन्हें उतना अलग नहीं करना पड़े, क्योंकि वे पहले से ही अत्यधिक संरचित हैं।
और HTML फाइलों के लिए, हमें कुछ अलगाव करना चाहिए। बजाय इसके कि सैकड़ों JavaScript फाइलों को सैकड़ों HTML फाइलों के साथ लिखें, जिससे 1000 लाइनों के कोड को पार करना आसान हो जाता है, हमें JavaScript के लिए import
का उपयोग करना चाहिए। JavaScript कोड के लिए, हम ऊपर बताए गए तरीकों का उपयोग करके अलगाव कर सकते हैं।
हम कोड को ऐसे संरचित करना चाहते हैं कि AI हमें आसानी से कोड जोड़ने, संपादित करने, हटाने और चलाने में मदद कर सके। यह शुरुआत है। एक दिन का सोचें जब सभी कोड को AI द्वारा आसानी से जनरेट या सुधारा जा सके। दुनिया अत्यधिक डिजिटलाइज़ हो जाएगी।
कल्पना कीजिए कि मैं 100 बड़े सॉफ्टवेयर प्रोजेक्ट्स लिख रहा हूँ और दूसरों के साथ कनेक्ट करने के लिए APIs प्रदान कर रहा हूँ। इसमें मेरा दैनिक एजेंडा शामिल है; मैं खुद को आजकल एक 1000-कार्मिक तकनीकी कंपनी के समान मानता हूँ। वे मेरे आवश्यकताओं के अनुसार अनुकूलित हैं, पैसा कमाने या खर्च करने के लिए, मेरे फायदे के लिए। यह वास्तव में आश्चर्यजनक है।
एक मैनुअल AI एजेंट के रूप में सफल होना
AI एजेंट्स को कोड के साथ स्वचालित रूप से चलाया जाना चाहिए। अब, इस निबंध का शीर्षक “मैनुअल AI एजेंट” है। आपको शायद लगता है कि मैं मजाक कर रहा हूँ, लेकिन मैं नहीं कर रहा हूँ।
मैं “मैनुअल AI एजेंट” कहता हूँ क्योंकि बड़े कंपनियों के लिए, सुरक्षा डेटा के चिंताओं और लंबे समय के विचार के कारण प्रौद्योगिकी अपनाने की गति धीमी होती है।
बाजार में बहुत सारी नई प्रौद्योगिकियाँ हैं; कौन जानता है कि कौन सा स्थायी रहेगा या तेज़ी से गायब हो जाएगा।
उनके पास सुरक्षा डेटा के बारे में भी चिंताएँ होती हैं। आमतौर पर, वे उन बड़े ब्रांडों के साथ भागीदारी करना चाहते हैं जिनके डेटा नीतियाँ कड़ी होती हैं और जनता द्वारा निगरानी की जाती है। यही कारण है कि माइक्रोसॉफ्ट फॉर्च्यून 500 कंपनियों में शीर्ष भागीदार बन गया है। अन्य कंपनियाँ उनके Teams, Microsoft Office 365, Azure, और Copilot का उपयोग करती हैं।
लेकिन अगर बड़े कंपनियाँ अपने कर्मचारियों को LLM APIs का उपयोग करने के लिए प्रदान नहीं करती हैं, तो हमें यह सोचना होगा कि हम मैनुअल AI एजेंट के रूप में कैसे काम कर सकते हैं।
इसका मतलब है कि हम बहुत सारे टूल्स का उपयोग करके काम करेंगे, जो उन APIs में टूल उपयोग या फंक्शन कॉलिंग के समान है। हम अपनी प्रॉम्प्ट इंजीनियरिंग या कंटेक्स्ट इंजीनियरिंग करेंगे।
बजाय Claude Code या Manus का उपयोग करके एक जटिल कार्य करने के, हम एक साधारण AI चैटबॉट के साथ खुद से कार्य कर सकते हैं।
AspectJ अच्छा है क्योंकि यह AOP प्रोग्रामिंग का उपयोग करके विधियों को इंटरसेप्ट करता है। Spring में फिल्टर भी HTTP अनुरोधों के लॉग्स को कैप्चर करने के लिए अच्छे हैं। Log4j में लॉगर अच्छा है क्योंकि यह विशिष्ट लॉग्स को एक फाइल में रीडायरेक्ट कर सकता है। IntelliJ IDEA अच्छा है क्योंकि इसमें एक फंक्शन है जो ऑब्जेक्ट्स को टेक्स्ट के रूप में निर्यात करता है।
SQL क्लाइंट्स अच्छे हैं क्योंकि वे आसानी से रows के CSV या Excel फाइल्स निर्यात कर सकते हैं। Git diff अच्छा है क्योंकि यह आपको तुलना टेक्स्ट दे सकता है।
वे सभी आपको AI चैटबॉट्स के लिए बेहतर कंटेक्स्ट प्रदान करने में मदद करते हैं। और AI चैटबॉट्स भी बहुत सारे Python स्क्रिप्ट्स को कार्य करने में मदद कर सकते हैं।
एक प्रभावी AI एजेंट बनने के लिए, आपको बहुत सारे प्रभावी टूल्स का उपयोग करना होगा ताकि आप सरल या जटिल कार्य कर सकें।
LLM/AI चैटबॉट्स के लिए APIs के बिना, आपको टेक्स्ट को चैटबॉट्स में कॉपी करना होगा। यह सीधे AI को कॉल करने से थोड़ा अधिक मेहनत वाला है, लेकिन अच्छी खबर यह है कि आप कंटेक्स्ट या प्रॉम्प्ट्स को अधिक सावधानीपूर्वक चयन कर सकते हैं।
इसलिए आपको AI चैटबॉट्स से कई बार पूछने की आवश्यकता नहीं है जैसे कि स्वचालित AI एजेंट करते हैं। आप उन टूल्स को सावधानीपूर्वक चयन कर सकते हैं जिन्हें आप उपयोग करेंगे।
इसलिए मैनुअल AI एजेंट के रूप में काम करना अपने फायदे हैं। हालाँकि, AI एजेंट प्रौद्योगिकी तेज़ी से विकसित हो रही है और अपना संभावना दिखा रही है।
अगर वे बहुत उपयोगी हैं, तो बड़े कंपनियाँ उन्हें AI चैटबॉट्स की तरह अपनाएंगी। अन्यथा, वे उन कंपनियों के साथ प्रतिस्पर्धा नहीं कर पाएंगी जो उन्हें अपनाएंगी—न केवल अन्य बड़े कंपनियों के साथ, बल्कि छोटे स्टार्टअप्स के साथ भी। क्योंकि AI अब इतना शक्तिशाली है, एक दर्जन कर्मचारियों वाला स्टार्टअप 1,000 कर्मचारियों वाली कंपनियों को भी हर सकता है।
मैनुअल AI एजेंट के रूप में काम करना कभी-कभी अनिवार्य होता है। इस काम में उन्नत AI प्रौद्योगिकी के अभाव के अलावा अन्य फायदे भी हैं। अच्छे नौकरियाँ ढूँढना आसान नहीं है। इसलिए, इस मामले में, यह हमें AI चैटबॉट्स का अधिकतम उपयोग करने के लिए पारंपरिक ज्ञान का उपयोग करने का अवसर देता है।
और इसका मतलब है कि हम अपने प्रॉम्प्ट्स को व्यवस्थित और संचय कर सकते हैं ताकि AI चैटबॉट्स के लिए सिस्टम प्रॉम्प्ट्स बनाए जा सकें, जो Claude या Grok के समान हैं जो प्रकट हुए हैं। इस तरह, हमें बार-बार प्रॉम्प्ट्स लिखने की आवश्यकता नहीं है। हम Python स्क्रिप्ट्स का उपयोग करके प्रॉम्प्ट्स लिखने में मदद कर सकते हैं। हम HTTP अनुरोधों के लॉग्स प्राप्त कर सकते हैं और प्रॉम्प्ट्स लिख सकते हैं ताकि API टेस्ट केस जनरेट किए जा सकें।
प्रोग्रामिंग की जादू में अनंत स्तरों का स्तर है। यह फंक्शन के समान है जहां आप 100 स्तरों के फंक्शन कॉल कर सकते हैं। उदाहरण के लिए, WeChat iOS पर बनाया गया है, और WeChat Mini Programs WeChat पर बनाए गए हैं। iOS स्वयं Objective-C या Swift पर बनाया गया है, जो LLVM और Apple के ARM चिप्स के इंस्ट्रक्शन सेट पर बनाए गए हैं।
Java विकास के लिए Python का उपयोग करना
AI युग में Python का उपयोग करके Java विकास में कैसे मदद मिल सकती है? मुझे Python पसंद है। पिछले लगभग 3 वर्षों में, ChatGPT के रिलीज़ होने के बाद से, मैंने सबसे अधिक Python के साथ काम किया है।
एक तरीका यह है कि Python का उपयोग करके Java प्रोजेक्ट्स के लिए SQL हेल्पर स्क्रिप्ट्स, टेस्ट स्क्रिप्ट्स, और लॉग खोज स्क्रिप्ट्स लिखें।
Python का उपयोग करके Java के POM फाइलों और पैकेज डिपेंडेंसी का विश्लेषण करें। Python का उपयोग करके Java में डेटा सुसंगति की जांच करें। Python के साथ बहुत सारे ऐसे काम किए जा सकते हैं जो Java के बजाय किए जा सकते हैं।
लेकिन Java में PyTorch नहीं है। Python 200 लाइनों के कोड में कुछ भी कर सकता है जो Java में 500 लाइनों में लेगा। लेकिन AI टूल्स का उपयोग करके, आप अपने PyTorch के संस्करण को आसानी से नहीं बना सकते। यहां तक कि कुछ जैसे TinyGrad को भी बनाना समय लेता है।
हम पहले अपने स्क्रिप्ट्स क्यों लिखते हैं? एक कारण यह है कि यह अत्यधिक अनुकूलन योग्य है। कोई भी सार्वजनिक सॉफ्टवेयर या ओपन-सोर्स प्रोजेक्ट्स नहीं हैं जो हमारे प्रोजेक्ट्स में सीधे मदद कर सकते हैं, विशेष रूप से बड़े कंपनियों में।
बड़े कंपनियों के बड़े प्रोजेक्ट्स एक दशक या उससे अधिक समय से विकसित हो रहे हैं। वे पहले से ही बहुत सारे अनुकूलन कर चुके हैं।
इसलिए भविष्य में, बड़े कंपनियों के बड़े प्रोजेक्ट्स के आसपास बहुत सारे परिधीय प्रोजेक्ट्स होंगे। बड़े कंपनियों में आंतरिक कोडिंग एजेंट टूल्स में अधिक Claude-जैसे कोड राउटर्स होंगे। बड़े कंपनियों के लिए अधिक अनुकूलित Postman, SQL क्लाइंट्स, और कंपाइलर होंगे।
Python कोड Java एजेंट्स से भी कनेक्ट किया जा सकता है।
इसका मतलब है कि मुझे Python और Java दोनों को अच्छी तरह से सीखना होगा, ताकि मैं एक को दूसरे की मदद के लिए उपयोग करने के बारे में जान सकूं।
और मैं Python का उपयोग AI की मदद से अपने लिए और कॉर्पोरेट प्रोजेक्ट्स में बहुत सारी चीजें बनाने के लिए कर सकता हूँ। Java, Spring, डेटाबेस, और Angular, Vue, या React फ्रंटएंड के साथ, Python को बहुत मदद करने में बाधा नहीं लगनी चाहिए।
प्रोग्रामिंग एक बहुत ही लचीलापूर्ण चीज है। सीमा हमारी कल्पना है।
तो AI तेज़ी से बढ़ रहा है। हम AI की प्रगति को इस बात से माप सकते हैं कि हम कितना और कितनी आसानी से AI की मदद से कोडिंग और सीखने के लिए कोड का उपयोग कर सकते हैं।
क्या हम एक दिन कुछ AI एजेंट्स लिख सकते हैं, और फिर ये एजेंट्स एक पूरे TikTok को बनाना शुरू कर देंगे, जिसमें उसके बहुत सारे माइक्रोसर्विसेज और बड़े iOS या Android प्रोजेक्ट्स शामिल हैं?
अगर AI इतना शक्तिशाली है, तो आज हमें क्या करना चाहिए? शायद कुछ नहीं, क्योंकि जो हम आज करते हैं, वह AI के साथ आसानी से लागू किया जा सकता है। 2025 में, AI की मदद से हमारा 1 साल का काम 2030 के AI की क्षमता के साथ 1 महीने में हो सकता है।
यह हमारे मूल प्रश्न को उठाता है: हमारा जीवन का उद्देश्य क्या है? यह सब क्या है? एक अच्छा जीवन कैसे जीना है?
AI अन्य प्रौद्योगिकियों की तरह आ रहा है ताकि हमें स्वतंत्रता दे सके। लेकिन यह लगता है कि सभी एक मशीन की तरह इस पूंजीवादी समाज में व्यस्त हैं।
वापस विषय पर आते हैं। तो Python Java कोड लिखने में भी मदद कर सकता है। आप Python का उपयोग करके कोड लिखने के लिए कंटेक्स्ट प्राप्त कर सकते हैं और Copilot को इसे सही तरीके से लिखने के लिए कह सकते हैं।
AI प्रॉम्प्ट इंजीनियरिंग और कंटेक्स्ट इंजीनियरिंग के बारे में है। प्रॉम्प्ट्स और कंटेक्स्ट AI चैटबॉट्स के प्रतिक्रियाओं में मदद करते हैं।
Python कंटेक्स्ट में मदद कर सकता है; Python प्रॉम्प्ट्स जनरेट करने में मदद कर सकता है।
इसलिए यह सिर्फ Java के बारे में नहीं है, बल्कि हर अन्य प्रोग्रामिंग भाषा के बारे में है। Python उन्हें गहराई से मदद कर सकता है। तो फिर भी हम अन्य प्रोग्रामिंग भाषाओं का उपयोग क्यों करते हैं?
Python का अंतर्निहित डिज़ाइन ही है जो इसे C, C++, या Rust की तुलना में कम प्रदर्शनशील बनाता है।
AI युग में प्रोग्रामिंग भाषाएँ
AI अब इतना शक्तिशाली है कि हमें AI के दृष्टिकोण से सब कुछ फिर से सोचना होगा। अगले 10 वर्षों में कौन सी प्रोग्रामिंग भाषाएँ लोकप्रिय होंगी?
Python निश्चित रूप से होगी। कई AI चैटबॉट्स ब्राउज़र में कोड चलाने के लिए Python का उपयोग करते हैं, जैसे Grok। Python को इसकी सरलता, सीखने में आसानी, और अच्छे प्रदर्शन के लिए लोकप्रियता मिली है। इसे कई सॉफ्टवेयर प्रोजेक्ट्स द्वारा अपनाया गया है।
Python C++, Java, और Rust से धीमा है। Java का एक बड़ा समुदाय है। Rust C पर बनाया गया है।
क्या बहुत सारे प्रोजेक्ट्स Rust में फिर से लिखे या बदल दिए जाएंगे? फिर से लिखना एक पुराने प्रोजेक्ट का संदर्भ लेना और Rust का उपयोग करके उसी कार्यक्षमता को लागू करना है। बदलना का मतलब है कि अन्य भाषाओं में लिखे गए सॉफ्टवेयर को अब Rust में लिखे गए समान सॉफ्टवेयर द्वारा बदल दिया गया है।
Rust का सिंटैक्स कुछ हद तक जटिल है। लेकिन AI युग में, यह एक बड़ी समस्या नहीं है, क्योंकि AI कोड लिखने में मदद करेगा। जटिल सिंटैक्स के लिए मनुष्यों को भी बहुत परेशानी नहीं होती।
मुझे लगता है कि हिंदी या तमिल काफी जटिल हैं। लेकिन उत्तर भारत में रहने वाले भारतीयों के लिए हिंदी एक समस्या नहीं है, और दक्षिण में रहने वालों के लिए तमिल भी नहीं है।
लेकिन एक चीनी नागरिक जैसे मुझे, मुझे लगता है कि यह एक बड़ी समस्या है।
पहली नज़र में, हिंदी में सभी वर्ण मुझे समान लगते हैं। मुझे लगता है कि हिंदी और अरबी के बीच का अंतर चीनी और जापानी, या अंग्रेजी और स्पेनिश के बीच के अंतर के समान है।
प्रोग्रामिंग भाषाओं के बीच के अंतर प्राकृतिक भाषाओं के बीच के अंतर से कम हैं। एक बड़ा कारण यह है कि प्रोग्रामिंग भाषाओं में केवल वर्णों की उपस्थिति में अंतर होता है, जबकि प्राकृतिक भाषाओं में ध्वनि में भी अंतर होता है। प्राकृतिक भाषाओं में दो पहलू होते हैं: वर्णमाला और उच्चारण।
प्रोग्रामिंग भाषाओं का इतिहास लगभग एक शताब्दी का है, लेकिन प्राकृतिक भाषाओं का इतिहास 100 शताब्दियों से अधिक का है। जितना अधिक समय लोग किसी चीज पर लगाते हैं, उतने ही अधिक अंतर विकसित होते हैं। थोड़े अलग विचार वाले लोग अपनी चीजों के अपने संस्करण बनाते हैं।
यह अंग्रेजी अकसेंट को समझाता है। कुछ TikTok वीडियो में, लोग कहते हैं कि सबसे खराब अंग्रेजी अकसेंट बर्मिंघम का है।
तो वास्तव में, Rust का कोई बड़ा समस्या नहीं है। इसका प्रदर्शन काफी अच्छा है, क्योंकि यह C/C++ पर बनाया गया है।
प्रदर्शन बहुत से अनुप्रयोगों के लिए महत्वपूर्ण है। आजकल बहुत से ऐप्स अरबों लोगों द्वारा उपयोग किए जाते हैं। क्लाउड कंप्यूटिंग इन्फ्रास्ट्रक्चर के लिए, उनकी सेवाओं को कई बार कॉल किया जाता है। तो यहां तक कि एक छोटा प्रदर्शन लाभ भी बहुत पैसा बचा सकता है।
क्या Rust के कई नुकसान हैं? एक बात जो लोग शिकायत करते हैं वह यह है कि यह सीखना मुश्किल है। सीखने की सीढ़ी ऊंची है। AI अच्छी खबर लाता है, क्योंकि यह सीखने में बहुत मदद करता है।
मुझे Rust के बारे में बहुत कुछ जानने की आवश्यकता नहीं है। एक 10 वर्षों के अनुभव वाले सॉफ्टवेयर इंजीनियर के रूप में, मैं AI की मदद से बहुत सारे सरल Rust अनुप्रयोग लिख सकता हूँ। मुझे बस Rust के बुनियादी कॉम्पाइलेशन कमांड्स जैसे cargo
और cargo build
के बारे में जानने की आवश्यकता है। मुझे Rust सिंटैक्स के बारे में बहुत कुछ जानने की आवश्यकता भी नहीं है।
Rust के लिए, म्यूटेबिलिटी या बॉरो मॉडल मुझे परेशान नहीं करता। 200 लाइनों से कम कोड वाले सरल अनुप्रयोगों के लिए, मैं त्रुटियों को सीधे सुधारने के लिए AI को त्रुटि संदेश प्रदान करके पूछ सकता हूँ।
लेकिन अगर Rust इतना अच्छा है, तो लोग अभी भी Python का बहुत उपयोग क्यों करते हैं? क्योंकि Python एक अन्य पहलू में अच्छा है। यह बहुत आसान है और सीखना। इसके पास एक बड़ा समुदाय और बहुत सारे लाइब्रेरी हैं।
Python का प्रदर्शन अभी भी अच्छा है और यह मिलियन, यहां तक कि दस मिलियन, उपयोगकर्ताओं के लिए उत्पादों का समर्थन कर सकता है। अधिकांश उत्पादों को इतने उपयोगकर्ता नहीं मिलते। अगर आपको इतने उपयोगकर्ता मिलते हैं, तो आप Rust या Java प्रोग्रामर्स को प्रदर्शन को अनुकूलित करने के लिए नियुक्त कर सकते हैं।
Python बहुत सारे विकास के लिए अच्छा है: मशीन लर्निंग, वेब विकास, गणित, शिक्षण, और स्क्रिप्टिंग। जबकि Python डेस्कटॉप अनुप्रयोगों में अच्छा नहीं है, MicroPython को Raspberry Pi में उपयोग किया जाता है।
AI युग में Java का क्या हाल है? यह भी अच्छा रहेगा, क्योंकि इसके पास एक बड़ा उपयोगकर्ता आधार और समुदाय है। AI बहुत मदद करता है। यह बहुत बड़ी कंपनियों द्वारा उपयोग किया जाता है। वे अपने मुख्य प्रोग्रामिंग भाषाओं को बदलने की संभावना नहीं देखते। उनके बड़े लेजेसी प्रोजेक्ट्स को एक नई प्रोग्रामिंग भाषा में फिर से लिखने में एक दशक का प्रयास लगेगा। AI मदद करेगा, लेकिन प्रक्रिया अभी भी धीमी रहेगी।
अक्सर, बड़े कंपनियों के तर्कसंगत लोग अपनी मुख्य प्रोग्रामिंग भाषा बदलने का विचार नहीं करते। उनका मुख्य व्यवसाय अन्य क्षेत्रों में है। उन्हें प्रौद्योगिकी के बारे में बहुत परवाह नहीं है। अगर वे करते, तो वे सॉफ्टवेयर या इंटरनेट कंपनियाँ बन जाते और ओपन सोर्स समुदायों में नेतृत्व करते। हालाँकि, बहुत कम फॉर्च्यून 500 कंपनियाँ ओपन सोर्स के बारे में परवाह करती हैं।
AI के कारण बहुत सारे स्टार्टअप्स होंगे। स्टार्टअप्स नई चीजें करने के लिए पसंद करते हैं, इसलिए वे नई प्रोग्रामिंग भाषाओं का प्रयास करेंगे। AI युग में, एजाइल प्रोग्रामिंग भाषाएँ छोटे और मध्यम उद्यमों में जीतेंगी।
अल्गोरिदम प्रतियोगिताओं में, पसंदीदा प्रोग्रामिंग भाषा बदल जाएगी? C++ ने इस क्षेत्र में दशकों तक प्रभुत्व रखा है। वास्तविक अल्गोरिदम प्रतियोगिताओं में, आप AI का उपयोग नहीं कर सकते। लेकिन मुझे लगता है कि AI युग में कम लोग भाग लेंगे।
क्योंकि वे लोग प्रोग्रामिंग में बहुत अच्छे हैं, और AI के कारण बहुत सारे अवसर हैं, तो अधिक लोग वास्तविक उत्पादों को बनाना क्यों नहीं पसंद करेंगे बजाय अल्गोरिदम समस्याओं का अभ्यास करने के? यहां तक कि अल्गोरिदम प्रतियोगिताओं के GOAT, Gennady Korotkevich ने भी Devin में शामिल होना चुना।
लेकिन अल्गोरिदम प्रतियोगिताएँ बुद्धिमान प्रोग्रामर्स के लिए एक आरामदायक या रिटायरिंग शौक हो सकती हैं। यह चेस या बास्केटबॉल की तरह है। लोग इसे इसलिए करते हैं क्योंकि उन्हें यह पसंद है या उन्हें इसकी आवश्यकता है, अन्य कारणों के लिए नहीं। बहुत से लोग 30 या 40 के दशक में बास्केटबॉल खेलते हैं। वे शायद स्वास्थ्य के लिए या जीवन को अधिक आनंदमय बनाने के लिए इसे करते हैं।
iOS और Android के लिए, यह Java, Kotlin, Swift, और Objective-C है। AI के कारण कोई महत्वपूर्ण बदलाव नहीं होगा, क्योंकि विकल्प सीमित हैं। अंतिम उपयोगकर्ता के पक्ष से, प्रदर्शन की आवश्यकताएँ इतनी अधिक नहीं हैं। Google और Apple अपने प्लेटफॉर्म पर बहुत अधिक नियंत्रण रखते हैं। अगर Google और Apple नहीं बदलते, तो प्रोग्रामर्स नहीं बदलेंगे।
लेकिन सर्वर के लिए, बहुत सारे विकल्प हैं। AI-सहयोगी भाषाएँ जीतेंगी।
प्रोसीजरल प्रोग्रामिंग भाषाएँ ऑब्जेक्ट-ओरिएंटेड भाषाओं से अधिक जीतेंगी। प्रोसीजरल भाषाएँ सीधे और AI द्वारा आसानी से जनरेट की जा सकती हैं, जबकि OOP भाषाओं में बहुत सारे नैस्टेड स्तर या डिज़ाइन पैटर्न होते हैं।
क्या AI के कारण अधिक प्रोग्रामिंग भाषाएँ होंगी? मुझे लगता है कि हाँ। Zed और OCaml के पास अधिक उपयोगकर्ता होंगे। LLMs/AI पैटर्न सीखने में बहुत अच्छे हैं, इसलिए अन्य भाषाओं में प्रोजेक्ट्स को फिर से लिखना आसान है।
भविष्य में प्रोग्रामिंग भाषाओं का अधिक प्रतिस्पर्धा होगी। वे प्रदर्शन, सिंटैक्स, और कंपाइलर गुणवत्ता में अच्छे होंगे, तो वे स्वाभाविक रूप से अधिक लोकप्रिय होंगे। प्रतिस्पर्धा LLMs की तरह है। वे जो स्वाभाविक रूप से अच्छे हैं, जैसे Claude और DeepSeek, लोकप्रिय होते हैं।
क्या AI इतना शक्तिशाली हो जाएगा कि हमें प्रोग्रामिंग सीखने की आवश्यकता नहीं रहेगी? यह अभी भी बहुत दूर है। मान लीजिए कि हमारे पास 1,000 Java फाइलों वाला एक बहुत बड़ा प्रोजेक्ट है। AI को उस पर आसानी से काम करने में 10 साल लग सकते हैं।