- प्रोग्रामिंग अस्पष्ट specifications को बारीकी से तराशने की एक रचनात्मक प्रक्रिया है, और AI English specifications को code में बदलकर इस प्रक्रिया को तेज करता है
- ‘Vibe coding’ सहज महसूस होने वाला development संभव बनाता है, लेकिन abstraction leakage से पैदा होने वाली complexity और bugs की समस्या से बचा नहीं जा सकता
- इंसान जटिलता को संभालने के लिए abstraction और compression का उपयोग करते हैं, और यही programming का मूल मूल्य है
- AGI युग में AI बेहतर abstractions को support करके परिष्कृत और कलात्मक code creation को संभव बना सकता है
- “कोड मर चुका है” जैसी धारणा के विपरीत, AI coding का अंत नहीं बल्कि एक नई शुरुआत खोलने वाला tool है
कोड की मौत का दावा बढ़ा-चढ़ाकर किया गया है
- English specifications की अस्पष्टता और precision की सीमा की ओर इशारा करते हुए, programming को writing की तरह बार-बार refinement के ज़रिए अधिक precise बनाने की प्रक्रिया बताया गया है
- Bertrand Russell के उद्धरण के माध्यम से इस बात पर ज़ोर दिया गया है कि “किसी चीज़ को सटीक बनाने की कोशिश करने से पहले सब कुछ अस्पष्ट होता है”
- AI English में लिखे specifications को तेजी से executable code में बदल देता है, जिससे उपयोगकर्ता धीरे-धीरे अपने इच्छित परिणाम को अधिक ठोस रूप दे सकते हैं
- ‘Vibe coding’ वह तरीका है जिसमें AI द्वारा बनाए गए outputs पर प्रतिक्रिया देते हुए सहज रूप से development किया जाता है, लेकिन यह सही abstraction होने का भ्रम दे सकता है
- जब abstraction leak होता है, तो अप्रत्याशित bugs पैदा होते हैं, और scale बढ़ने पर यह समस्या और गंभीर हो जाती है
- Dan Shipper के उदाहरण की तरह, ‘vibe coding’ से बनाया गया collaborative text editor लोकप्रिय होने के बाद complexity issues के कारण down हो गया
- “Live collaboration” सहज रूप से सरल लगता है, लेकिन वास्तव में यह बहुत कठिन समस्या है, जो complexity की प्रकृति दिखाती है
abstraction और complexity पर नियंत्रण
- इंसान एक समय में लगभग 7±2 items ही समझ पाते हैं, इसलिए complexity को संभालने का एकमात्र तरीका ‘compression’, यानी abstraction है
- Edsger Dijkstra के उद्धरण के माध्यम से यह रेखांकित किया गया है कि “abstraction का उद्देश्य अस्पष्टता नहीं, बल्कि अर्थ के नए स्तर पर precision है”
- Sophie Alpert द्वारा Slack के जटिल notification flowchart को सरल बनाने का उदाहरण दिया गया है
- programming का मूल complexity को संभालने के लिए बेहतर abstractions बनाना है, और functional reactive programming जैसी धाराओं में इसकी सुंदरता देखी जा सकती है
- collaborative text editor जैसी मूल रूप से जटिल समस्या भी ReactJS या TailwindCSS जैसे abstraction tools के ज़रिए धीरे-धीरे काबू में लाई जा सकती है
AGI युग और code की भूमिका
- जैसे-जैसे AI अधिक तेज़ और सस्ता होता जाएगा, अंततः वह मानव से अलग न पहचानी जा सकने वाली बुद्धिमत्ता (AGI) तक पहुँच जाएगा
- AGI के युग में यह अनुमान है कि कोई भी व्यक्ति कम लागत पर ‘Karpathy-स्तर के 100 जीनियस’ जितनी शक्तिशाली बुद्धिमत्ता का उपयोग कर सकेगा
- लेकिन इसका उद्देश्य ‘और अधिक घटिया code’ बनाना नहीं, बल्कि बेहतर abstractions और complexity की समझ के लिए tool के रूप में उपयोग होना होगा
- code सिर्फ software बनाने का साधन नहीं, बल्कि अपने आप में एक महत्वपूर्ण कलात्मक उत्पाद है, और अच्छी तरह लिखा code कविता के समान बताया गया है
- जैसे writing में ‘vibe writing’ नहीं होता, वैसे ही coding को भी सिर्फ सहज संवेदना-आधारित क्रिया से प्रतिस्थापित नहीं किया जा सकता
- AGI आने पर machines ‘non-slop’ code लिख सकेंगी, और यह मानवता के लिए गौरवपूर्ण प्रगति होगी
AI और code quality में सुधार
- फिलहाल AI अभी भी अपूर्ण code बनाता है, लेकिन developers इसे ध्यान में रखकर उसका उपयोग कर रहे हैं
- Simon Willison की राय की तरह, AI का उपयोग बेहतर code बनाने के tool के रूप में होना चाहिए
- AGI आने पर उसे सबसे पहले सबसे कठिन abstraction problems को हल करने में लगाया जाएगा, जिससे collaborative editor libraries जैसे जटिल systems बेहतर होंगे
- Opus 4.6 का उपयोग करके Val Town के लिए full-stack React framework (vtrr) बनाने का उदाहरण दिया गया है
- React Router 7 से जुड़ी unresolved problem को एक ही बार में हल किया गया, और 50-line single-file demo के ज़रिए complexity को elegantly संभाला गया
- इससे यह दिखता है कि AI और इंसान के collaboration से परिष्कृत code creation संभव है
code का भविष्य और formalism का मूल्य
- समाज के बहुत से लोग “कोड मर चुका है” मानते हैं, लेकिन यह printing press के आविष्कार के बाद कहानी के अंत की घोषणा करने जैसी गलती है
- AI coding का अंत नहीं, बल्कि coding की नई शुरुआत है
- Edsger Dijkstra, Tony Hoare और Charles Babbage के उद्धरणों के माध्यम से यह रेखांकित किया गया है कि formal thinking और symbols की compression power मानव विचार का विस्तार करती है
- Dijkstra ने कहा कि formal languages का उपयोग बोझ नहीं, विशेषाधिकार समझा जाना चाहिए
- Hoare ने “ऐसा सरल design जिसमें defects साफ़ तौर पर न हों” और “ऐसा जटिल design जिसमें defects साफ़ तौर पर दिखाई न दें” के दो approaches की तुलना की
- Babbage ने बताया कि symbols का compression विचार को आगे बढ़ाने वाली शक्ति है
- निष्कर्षतः, code मरा नहीं है; बल्कि AI युग में वह और भी शक्तिशाली रचनात्मक tool के रूप में उभर रहा है
1 टिप्पणियां
Hacker News की राय
Chris Lattner ने Claude AI द्वारा लिखे गए एक compiler की समीक्षा की, और कहा कि उसमें कोई क्रांतिकारी बात नहीं थी
AI मौजूदा ज्ञान को औसतन फिर से जोड़ने की प्रवृत्ति रखता है, इसलिए वह अपने आप critical thinking या नए paradigm नहीं बना पाता
इंसान मौजूदा सहमति से बाहर जाकर सोच सकते हैं, लेकिन AI में उसी सहमति की ओर लौटने की एक ताकत होती है
आखिरकार AI एक conformist है, और यही उसकी ताकत भी है और कमजोरी भी
संबंधित लेख
OAuth या SAML जैसी जटिल authentication settings को docs से समझने में घंटों लगाने के बजाय, LLM जल्दी से काम करने लायक integration code बना देता है
मैं इसे AI से बात करते हुए अपने विचार व्यवस्थित करने वाले rubber duck debugging की तरह भी इस्तेमाल करता हूँ
इस तरह की बातचीत में इतनी जटिलता होती है कि असली development अनुभव के बिना इसे करना मुश्किल है
असली चिंता यह है कि क्या AI demand घटाकर industry को oversupply की स्थिति में ले जाएगा
अगर नए business problems लगातार पैदा होते रहे, तो AI एक tool के रूप में मदद करेगा, लेकिन अगर ऐसा नहीं हुआ तो AI हो या न हो, jobs कम होंगी
neural networks मूल रूप से interpolation करते हैं, extrapolation नहीं
यानी सीखी हुई सीमा के भीतर वे काफ़ी सटीक होते हैं, लेकिन उसके बाहर उनकी भविष्यवाणी संभव नहीं होती
Wikipedia लेख और SolidGoldMagikarp उदाहरण इसे अच्छी तरह दिखाते हैं
Claude का लक्ष्य innovation नहीं था, बल्कि यह साबित करना था कि “क्या AI compiler बना सकता है”
AlphaDev या AlphaEvolve जैसे मामलों को देखें, तो exploratory learning और knowledge combination के ज़रिए AI वास्तव में innovation कर सके, इसकी संभावना काफ़ी है
ज़्यादातर मामलों में हमें predictible tools चाहिए होते हैं, खुद से सीखने वाली अस्थिर इकाई नहीं
AI विरोधाभासी requirements को व्यवस्थित करके consistent implementation बना सकता है
उदाहरण के लिए “नीली स्याही से 7 लाल रेखाएँ बनाओ” जैसी असंभव मांग पर भी यह तार्किक प्रतिक्रिया दे सकता है
Claude ने सचमुच यह कहा कि “यह असंभव है, इसलिए 0 रेखाएँ बनाना ही ईमानदार जवाब है”, और यह critical thinking का उदाहरण है
“क्या AI नई technologies बना सकता है?” इस सवाल पर मैं संशय में हूँ
AI मौजूदा data पर निर्भर करता है, इसलिए जब नई language या framework आते हैं, तो training data की कमी से evolution की गति धीमी पड़ने का जोखिम होता है
AI coding उल्टा “reinventing the wheel” को कम कर सकता है, और NIH syndrome से बाहर निकाल सकता है
training data लगभग न होने पर भी यह docs पढ़कर code लिख सकता है और नई कोशिशें कर सकता है
हमें यह संभावना खुली रखनी चाहिए कि किसी दिन AI भी creative technical synthesis कर सकेगा
आख़िरकार ऐसा समय भी आ सकता है जब developers को AI training data में शामिल होने के लिए पैसे देने पड़ें
उदाहरण के लिए skills.sh जैसे platforms AI को नए frameworks सिखाने के लिए skill system देते हैं
सिर्फ docs और example code से भी AI उस framework को तुरंत इस्तेमाल कर पाता है
मेरे मन में code को लेकर मिश्रित भावनाएँ हैं
काम में code एक liability है, लेकिन साथ ही शौक़ का आनंद भी है
लगता है कि Star Trek के computer जैसा, जहाँ “बोलकर कहो और काम हो जाए”, ऐसा संसार काफ़ी पास आ रहा है
समाज के बहुत से बौद्धिक संसाधन ad tech या surveillance industry में लग रहे हैं
अगर AI coding की जगह लेता है, तो यह talent redistribution का एक मौका बन सकता है
मैं tree structure में tombstone के बिना move·delete·sort कर सकने वाला CRDT बना रहा हूँ
Claude Code code तो अच्छा लिखता है, लेकिन वह बार-बार tombstone जोड़ने की कोशिश करता था, इसलिए मुझे उसे तार्किक प्रमाण से मनाना पड़ा
लगता है कि इस तरह की बारीक संरचनात्मक समझ अभी AI में पूरी तरह नहीं आई है
हर बार जब नई technology आती है, इंसान हमेशा अत्यधिक उम्मीद और प्रयोग के दौर से गुज़रते हैं
उसी प्रक्रिया में हम उसकी सीमाएँ सीखते हैं
agentic programming का वादा बहुत आकर्षक लगता है, लेकिन आख़िर में हर कोई trial and error के ज़रिए इसकी वास्तविकता सीखेगा
“code मर चुका है” इस दावे की बजाय, मैं इसे इस तरह देखता हूँ कि इंसान abstraction level को एक कदम ऊपर ले जा रहे हैं
अब English में specification लिखो और AI code लिख देता है
लेकिन जब पूरी specificity चाहिए होती है, तब code अब भी ज़्यादा उपयोगी है
photo editing की तरह, अगर बहुत सूक्ष्म control चाहिए तो खुद करना बेहतर है, लेकिन ज़्यादातर मामलों में AI को सौंपना काफ़ी है
समय के साथ मुझे लगता है कि AI स्थिर और अधिक सुरक्षित code इंसानों से बेहतर लिखेगा
जैसा Simon Willison ने कहा, vibe coding की असली value “ज़्यादा तेज़” नहीं बल्कि “बेहतर code” बनाने में है
अलग-अलग design models के साथ prototypes बनाकर, readability·reliability·fault tolerance के आधार पर बार-बार सुधार किया जा सकता है
अब code review में अगर कहा जाए “यह हिस्सा ऐसे बदलें”, तो AI तुरंत उसे ठीक कर देता है
लेकिन मेरे कई सहकर्मी सिर्फ “code गायब हो जाने वाली दुनिया” की ही उम्मीद कर रहे हैं
कुछ समय पहले Donald Knuth से जुड़ी एक ख़बर थी कि जब उन्होंने AI से proof माँगा, तो AI ने पहले से अज्ञात proof खोज निकाला
लेकिन संभव है कि वह नई खोज से ज़्यादा, भूली हुई सामग्री को ढूँढ निकालना रहा हो
यही बात LLM को एक शक्तिशाली research tool बनाती है, और साथ ही उसे मानो रचनात्मक दिखाती है
Dragon Book देखें, तो कुछ महीनों में काम करने वाली चीज़ बनाई जा सकती है, और उस प्रक्रिया में सारे सिद्धांत समझ आ जाते हैं
मेरा मानना है कि programming languages इंसानी इरादे को संक्षेप में व्यक्त करने का माध्यम हैं
लेकिन कभी-कभी natural language ज़्यादा सटीक और घनी intent transfer कर सकती है
अच्छी abstraction इस फ़ासले को कम करती है, और DSL या ML/Lisp परिवार की languages इसके उदाहरण हैं
उदाहरण के लिए Electric Clojure ट्यूटोरियल की तरह, code कभी-कभी इरादे को सबसे अच्छी तरह समेट सकता है
आखिरकार Wittgenstein के शब्दों में, “धुंधली तस्वीर कभी-कभी वही हो सकती है जिसकी हमें ज़रूरत है”