ऑटोमैटिक प्रोग्रामिंग
(antirez.com)- AI सहायता का उपयोग करके सॉफ्टवेयर लिखने की प्रक्रिया को antirez ने ‘Automatic Programming’ के रूप में परिभाषित किया है, और उनका अनुमान है कि यह जल्द ही सॉफ्टवेयर लिखने का मानक बन जाएगा
- एक ही LLM का उपयोग करने पर भी मानवीय अंतर्ज्ञान, डिज़ाइन और लगातार दिशा-संशोधन के आधार पर परिणाम बहुत अलग हो सकते हैं
- Vibe coding वह तरीका है जिसमें बिना गहरी समझ के काम AI पर छोड़ दिया जाता है, जबकि ऑटोमैटिक प्रोग्रामिंग डेवलपर की स्पष्ट vision और control को आधार मानती है
- AI द्वारा जनरेट किया गया कोड भी मनुष्यों द्वारा संचित pretraining data और निर्णय पर आधारित होता है, और उसके परिणाम का स्वामित्व डेवलपर के पास होता है
- प्रोग्रामिंग लगातार अधिक automated होती जा रही है, लेकिन ideas और vision अभी भी मनुष्यों का क्षेत्र बने हुए हैं
Automatic Programming की अवधारणा की परिभाषा
- AI सहायता के साथ सॉफ्टवेयर लिखने की प्रक्रिया को ऑटोमैटिक प्रोग्रामिंग (Automatic Programming) नाम दिया गया है
- यह तरीका जल्द ही सॉफ्टवेयर लिखने की standard process बन जाएगा
Vibe coding से अंतर
- Vibe coding वह तरीका है जिसमें प्रक्रिया में लगभग बिल्कुल भाग लिए बिना AI से सॉफ्टवेयर बनवाया जाता है
- यदि आप अपनी इच्छा को बहुत सामान्य शब्दों में समझाते हैं, तो LLM अपने training data और उस execution के विशेष sampling के आधार पर स्वाभाविक रूप से उभरने वाला पहला idea/design/code बना देता है
- Vibe coder ज़्यादा से ज़्यादा यह बता पाता है कि क्या काम नहीं कर रहा या क्या उम्मीद से अलग है
- ऑटोमैटिक प्रोग्रामिंग उच्च गुणवत्ता का लक्ष्य रखती है और निर्माता की software vision का कड़ाई से पालन करती है
- यह vision बहु-स्तरीय होती है: किसी खास काम को ठीक-ठीक कैसे करना है, से लेकर किसी विशेष function को कैसे लिखना है, यह AI को सीधे निर्देश देने तक
- क्या करना है यह भी एक मुख्य तत्व है
मानवीय तत्व का महत्व
- एक ही LLM होने पर भी, प्रक्रिया का नेतृत्व करने वाले व्यक्ति का अंतर्ज्ञान, डिज़ाइन, लगातार दिशा-संशोधन और सॉफ्टवेयर के बारे में विचार परिणाम को बहुत बदल देता है
- "Claude ने इस सॉफ्टवेयर को vibe coding से बना दिया" जैसी अभिव्यक्ति उचित नहीं है
- यदि आप यह समझते हुए कि क्या हो रहा है, वास्तव में सॉफ्टवेयर बना रहे हैं, तो वह आपके द्वारा बनाया जा रहा सॉफ्टवेयर है
कोड स्वामित्व पर दृष्टिकोण
- pretraining data, भले ही LLM केवल उसी से नहीं सीखता हो (RL की भी बड़ी भूमिका है), फिर भी मनुष्यों द्वारा निर्मित है
- इसलिए यह किसी और चीज़ का appropriation नहीं है
- AI-जनित कोड को "हमारा" कहा जा सकता है, और ऐसा कहने का अधिकार भी है
- pretraining एक सामूहिक उपहार है, जो अनेक व्यक्तियों को वे काम करने देता है जो वे अकेले कभी नहीं कर सकते थे
- यह कुछ हद तक किसी तरह सामूहिक चेतना से जुड़े होने जैसा है
- ऑटोमैटिक प्रोग्रामिंग से जनरेट किया गया कोड आपका कोड, आपका output, आपका product है, और इस पर गर्व किया जा सकता है
Redis का उदाहरण
- Redis में तकनीकी रूप से चकित कर देने वाली बहुत-सी चीज़ें नहीं हैं
- शुरुआती चरण में यह बस मूल डेटा संरचनाओं और networking code का एक संयोजन था, जिसे कोई भी सक्षम systems programmer लिख सकता था
- फिर भी यह बेहद उपयोगी सॉफ्टवेयर बना, क्योंकि इसके भीतर idea और vision निहित थे
निष्कर्ष
- प्रोग्रामिंग अब automated हो चुकी है, लेकिन vision अभी automated नहीं हुआ है
1 टिप्पणियां
Hacker News की राय
इंडस्ट्री में 30+ साल के करियर के बाद, हाल में मैं spec-driven development में गहराई से डूबा हुआ हूँ
Claude Code और GPT-5.2(CoPilot) का उपयोग करके requirements बनाता हूँ, और कई बार self-review दोहराते हुए spec को निखारता हूँ
तैयार spec से Claude Code implementation plan और code लिख देता है, और 20 मिनट के भीतर मुख्य features तैयार हो जाते हैं
इससे पुराने defense industry दौर का waterfall model याद आता है, लेकिन AI की वजह से अब कहीं तेज़ और अधिक refined “augmented cascade” approach संभव लगती है
agile उन कंपनियों की survival strategy थी जहाँ ये शर्तें संभव नहीं थीं और उन्हें जल्दी product ship करना पड़ता था
क्या देखने लायक कोई public spec examples हैं? जैसे पिछली पीढ़ी John Carmack के Quake code का सम्मान करती थी, वैसे अगली पीढ़ी शायद बेहतरीन specs की प्रशंसा करेगी
इंसान हर complexity और exception case पहले से नहीं देख सकता। असल में बनाते समय हमेशा कुछ न कुछ “ये तो सोचा ही नहीं था” निकलता है
अगर requirements पहले से स्पष्ट हैं, तो इसकी खास ज़रूरत नहीं
फर्क बस इतना है कि sub-team की जगह LLM का उपयोग हो रहा है
संबंधित संदर्भ: Design by Contract (Goodreads), मूल PDF
“pre-training मानवता का collective gift है” इस अभिव्यक्ति से सहमत नहीं हूँ
अगर वह चोरी की गई चीज़ है, तो वह gift नहीं है
LLM द्वारा बनाया गया code भी अगर मैं ज़िम्मेदारी लेकर maintain करता हूँ, तो मैं उसे अपना code मानता हूँ
समस्या तब होती है जब लेखक ज़िम्मेदारी से बचता है
Claude Code और Opus 4.5 का उपयोग करते हुए मैं भी इसी तरह के निष्कर्ष पर पहुँचा हूँ
मैं इसे “zen coding” कहता हूँ। codebase को एक Zen garden की तरह संभालते हुए, spec को बारीकी से design करता हूँ और हर line review करता हूँ
AI को designer नहीं बल्कि tool की तरह काम करना चाहिए
जिन लोगों के पास स्पष्ट spec होती है, वे AI से कहीं बेहतर quality का code निकलवा सकते हैं
Vibe coding सहज प्रयोग है, और Zen coding कारीगर की साधना
जब “Claude ने दिया” जैसी अभिव्यक्ति सुनता हूँ, तो लगता है कि वह अभी भी draft-जैसा code होगा
tool को दोष देने या माफ़ी माँगने के बजाय, output को बेहतर बनाना चाहिए
“pre-training मानवता का gift है” यह अभिव्यक्ति असहज लगती है
बहुत से open source developers नहीं चाहते थे कि उनका code LLM training में इस्तेमाल हो
LLM द्वारा generated code में कुछ हिस्से मैंने किताबों या ब्लॉग के code से लगभग जस के तस उठाए हुए भी देखे हैं
कम से कम स्रोत बताना नैतिक रूप से सही लगता है
अगर GPL code से LLM को train किया गया है, तो यह व्याख्या संभव है कि उसके outputs भी GPL के तहत जारी होने चाहिए
उदाहरण के लिए Kafka ने अपने manuscripts जला देने को कहा था, लेकिन आज वे साहित्य के classics हैं
1950~60 के दशक का “automatic programming” वास्तव में compiler को ही कहा जाता था
1980s के 4GL domain-specific high-level languages थे, और आज के LLM अभी natural language specs से draft generate करने के चरण में हैं
आखिरकार इंसानों को अब भी iterative revision और design changes के ज़रिए completeness बढ़ानी पड़ती है
हो सकता है कि हम अभी artisanal coder की आख़िरी पीढ़ी देख रहे हों
Antirez जैसे कारीगर इंसानी सीमाओं से आगे के concepts से जूझते हैं, और Redis जैसा सरल लेकिन सुंदर software बनाते हैं
AI इंसान की क्षमता से कहीं तेज़ code बना सकता है, लेकिन वह brush और canvas नहीं है
नई पीढ़ी बिल्कुल अलग तरह के कारीगर बनेगी
मुझे भी डर लगता है, लेकिन मैं इन नए tools को अपनाते हुए नई craftsmanship के युग का प्रयोग कर रहा हूँ
AI को अच्छी तरह इस्तेमाल करने की क्षमता बस एक अतिरिक्त skill है; पुराना ज्ञान बेकार नहीं हो जाता
Antirez के लेख में “vibe coding और automatic programming के अंतर” को साफ़ तौर पर अलग किया गया, यह प्रभावशाली लगा
यह वैसे ही बदलाव जैसा है जैसे architects के हाथ से drawing बनाने के युग से BIM, CAD की ओर जाना
AI युग के developers कम coding नहीं कर रहे, बल्कि value का focus बदल गया है
“vibe coding vs automatic coding” द्वैत नहीं बल्कि एक spectrum है
एक ही project के भीतर approach के कई स्तर मिलाकर इस्तेमाल किए जा सकते हैं
अहम बात है tool का critical use करना और लगातार सुधार करते रहना
कुछ लोग इसे “spec strumming” कहते हैं