Jas: AI-Paired Engineering as a Revival of N-Version Programming
यह शोध पत्र एक केस स्टडी प्रस्तुत करता है जो यह प्रदर्शित करता है कि जब AI-युग्मित इंजीनियरिंग को एक सटीक निष्पादन योग्य विनिर्देश (executable specification) द्वारा अनुंयोजित और समानांतर N-वर्जन कार्यान्वयन के माध्यम से मान्य किया जाता है, तो यह एक एकल डेवलपर को लगभग 120 घंटों में पांच विशिष्ट सॉफ्टवेयर पोर्ट्स बनाने में सक्षम बनाता है, जो प्रभावी रूप से 1980 के दशक की लागत-प्रभावी N-वर्जन प्रोग्रामिंग पद्धति को पुनर्जीवित करता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक जटिल, हाई-एंड ड्राइंग ऐप (जैसे कि मिनी-एडोब इलस्ट्रेटर) के पांच अलग-अलग संस्करण बनाना चाहते हैं। पुराने दिनों में, यह पांच अलग-अलग मास्टर आर्किटेक्ट्स को काम पर रखने जैसा होता, जिनमें से प्रत्येक एक अलग भाषा बोलता है, ताकि वे एक ही घर को डिजाइन कर सकें। इसमें वर्षों लग जाते और एक बड़ी धनराशि खर्च होती।
जेसन हिकी, जो कि एक अकेले डेवलपर हैं, ने कुछ अलग किया। उन्होंने केवल सात हफ्तों में इस ऐप के पांच कामकाजी संस्करण (Rust, Swift, OCaml, Python और एक वेब ब्राउज़र के लिए) बनाए, और वह भी केवल शाम के समय काम करके। उन्होंने कोई टीम नहीं रखी; उन्होंने AI को अपना साथी बनाया।
यहाँ बताया गया है कि उन्होंने यह कैसे किया, सरल शब्दों में:
1. "मास्टर ब्लूप्रिंट" (द एक्जीक्यूटेबल स्पेसिफिकेशन)
आमतौर पर, जब आप विभिन्न प्लेटफॉर्मों के लिए सॉफ्टवेयर बनाते हैं, तो आपको पांच बार ऐप के नियमों को शून्य से लिखना पड़ता है। यदि आप कलर पिकर के काम करने के तरीके को बदलना चाहते हैं, तो आपको पांच अलग-अलग कोडबेस में इसे अपडेट करना होगा।
हिकी ने इसके विपरीत किया। उन्होंने एक एकल "मास्टर ब्लूप्रिंट" लिखा (YAML नामक भाषा में लिखा गया एक 23,000-लाइन का दस्तावेज़)।
- उपमा: इस ब्लूप्रिंट को केवल एक स्थिर PDF के रूप में न सोचें, बल्कि इसे एक जीवित रेसिपी की तरह समझें। यह केवल यह नहीं कहता कि "एक लाल बटन बनाओ"; यह कहता है, "यहाँ बताया गया है कि बटन कैसा दिखता है, यह कैसे प्रतिक्रिया करता है जब आप इसे क्लिक करते हैं, और इसके बाद क्या होता है।"
- जादू: यह ब्लूप्रिंट "एग्जीक्यूटेबल" (निष्पादन योग्य) है। कंप्यूटर इस एक रेसिपी को पढ़ता है और स्वचालित रूप से सभी पांच ऐप्स के लिए यूजर इंटरफेस बनाता है। यदि हिकी को एक नियम बदलना है, तो वह एक ही स्थान पर बदलाव करते हैं, और इससे तुरंत पांचों ऐप्स अपडेट हो जाते हैं।
2. "फाइव-हेडेड ड्रैगन" (एन-वर्जन प्रोग्रामिंग)
1980 के दशक में, इंजीनियरों ने "एन-वर्जन प्रोग्रामिंग" नामक एक विधि का प्रयास किया था। विचार यह था: "यदि हम एक ही सिस्टम के पांच अलग-अलग संस्करण स्वतंत्र रूप से बनाते हैं, और वे सभी सहमत होते हैं, तो वह सही होना चाहिए। यदि वे असहमत होते हैं, तो हमें पता चल जाता है कि कुछ गलत है।"
- समस्या: यह बहुत महंगा था। एक ही कोड के पांच अलग-अलग संस्करण लिखने के लिए पांच अलग-अलग टीमों को बनाना पैसे की बर्बादी थी।
- AI का ट्विस्ट: हिकी ने AI का उपयोग करके इस विचार को पुनर्जीवित किया। क्योंकि AI अलग-अलग भाषाओं के लिए कोड लिखने का भारी काम कर सकता है, इसलिए वह एक अकेले व्यक्ति के रूप में पांच संस्करण बनाने का खर्च उठा सकते थे।
- सुरक्षा जाल: ये पांच संस्करण एक पांच-सदस्यीय जूरी की तरह कार्य करते हैं। यदि "Rust" वाला ऐप किसी रंग को लाल बनाता है, लेकिन "Python" वाला संस्करण उसे नीला बनाता है, तो सिस्टम तुरंत समस्या को चिह्नित कर देता है। वे एक-दूसरे का "डिफरेंशियल टेस्टिंग" करते हैं। यदि वे असहमत हैं, तो इसका मतलब है कि मास्टर ब्लूप्रिंट अस्पष्ट था, या किसी एक संस्करण ने गलती की है।
3. "एस्केप हैच" (निकास द्वार)
मास्टर ब्लूप्रिंट लगभग 90% काम को कवर करता है। लेकिन कभी-कभी, एक विशिष्ट कंप्यूटर प्लेटफॉर्म (जैसे कि iPhone या वेब ब्राउज़र) को एक विशेष ट्रिक की आवश्यकता होती जिसे सामान्य ब्लूप्रिंट वर्णित नहीं कर सकता।
- उपमा: कल्पना कीजिए कि ब्लूप्रिंट एक मानक घर का नक्शा है। लेकिन "Rust" वाले घर को एक विशेष सुदृढ़ बेसमेंट की आवश्यकता है क्योंकि जमीन पथरीली है। ब्लूप्रिंट सभी के लिए दीवारें और छत संभालता है, लेकिन "Rust" टीम को अपना विशेष बेसमेंट खुद बनाना होगा।
- हिकी इसे "एस्केप हैच" कहते हैं। यह उस कस्टम कोड की छोटी मात्रा है जिसकी प्रत्येक विशिष्ट प्लेटफॉर्म के लिए आवश्यकता होती है, जबकि बाकी हिस्सा साझा किया जाता है।
4. प्रक्रिया कैसे काम करती थी (द लूप)
हिकी ने केवल कोड टाइप नहीं किया और उम्मीद नहीं की। उन्होंने एक विशिष्ट लूप का उपयोग किया:
- डिज़ाइन: उन्होंने साधारण अंग्रेजी में एक योजना लिखी।
- AI समीक्षा: उन्होंने AI से योजना में कमियां खोजने के लिए कहा ("क्या गायब है? क्या भ्रमित करने वाला है?")।
- ब्लूप्रिंट अपडेट: उन्होंने AI की सलाह के आधार पर मास्टर ब्लूप्रिंट को अपडेट किया।
- बिल्ड और टेस्ट: AI ने पांचों ऐप्स के लिए कोड जेनरेट किया।
- "मानवीय आँख" की जाँच: यह सबसे धीमा हिस्सा था। हिकी ने मैन्युअल रूप से पांचों ऐप्स को अगल-बगल देखा। यदि एक भी अजीब दिख रहा था, तो उन्हें पता चल जाता था कि ब्लूप्रिंट को ठीक करने की आवश्यकता है।
परिणाम
- समय: ~120 घंटे का शाम का काम (लगभग 7 सप्ताह)।
- आउटपुट: एक कोर लॉजिक साझा करने वाले पांच पूरी तरह से कार्यात्मक ऐप्स।
- लागत: "कई डेवलपर-वर्षों" के बजाय, इसमें एक व्यक्ति को कुछ महीने लगे।
सावधानी (सीमाएं)
यह पेपर ईमानदार है कि यह क्या नहीं करता है:
- यह एक तैयार उत्पाद नहीं है: इन ऐप्स में पेशेवर टूल्स (जैसे जटिल 3D मेश या पेशेवर प्रिंटिंग फीचर्स) में पाए जाने वाले कुछ उन्नत फीचर्स की कमी है। यह एक "पर्याप्त उपसमुच्चय" (substantial subset) है, पूर्ण क्लोन नहीं।
- यह AI पर निर्भर है: यदि AI भ्रमित हो जाता है या "हैलुसिनेट" करता है (नकली कोड बनाता है), तो सिस्टम इसे पकड़ लेता है क्योंकि पांचों संस्करण असहमत होंगे। लेकिन यदि AI किसी विशिष्ट कार्य में खराब है, तो पूरी प्रक्रिया धीमी हो जाती है।
- इसे एक इंसान की आवश्यकता है: AI ने टाइपिंग की, लेकिन एक इंसान को परिणामों की जांच करनी थी, लॉजिक को ठीक करना था, और प्रोजेक्ट की "मेमोरी" को मैनेज करना था ताकि AI यह न भूल जाए कि उसने कल क्या तय किया था।
मुख्य निष्कर्ष
यह पेपर तर्क देता है कि AI ने सॉफ्टवेयर इंजीनियरिंग की अर्थशास्त्र को बदल दिया है।
पहले, गुणवत्ता सुनिश्चित करने के लिए सॉफ्टवेयर के कई संस्करण बनाना बहुत महंगा था। अब, AI द्वारा दोहराव वाले कोडिंग कार्य को संभालने के कारण, एक अकेला डेवलपर एक "जूरी" के रूप में पांच ऐप्स बना सकता है जो एक-दूसरे के काम की जांच करें। यह एक ऐसी विधि को, जिसे लागत के कारण 1980 के दशक में छोड़ दिया गया था, आज एक व्यक्ति के लिए एक व्यावहारिक उपकरण में बदल देता है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।