वाइब कोडिंग
वाइब कोडिंग क्या है?
वाइब कोडिंग एक एआई-संचालित प्रोग्रामिंग विधि है जिसे एंड्रेय कारपाथी ने 2024/2025 में पेश किया था। वाइब कोडिंग में, आप अपनी आवश्यकता को प्राकृतिक भाषा के प्रॉम्प्ट में बताते हैं और आमतौर पर बड़े भाषा मॉडल (LLMs) आपके लिए अधिकांश, अक्सर सारा काम करने वाला कोड जनरेट कर देते हैं। अगर आपके पास समय हो तो वाइब कोडिंग की कला देखें जिसे रिक रुबिन द्वारा अनुकूलित किया गया है ताकि वाइब कोडिंग का तरीका और बेहतर समझ सकें।
इस नई विधि का एक बड़ा फायदा पहुँचयोग्यता है क्योंकि बिना कोडिंग अनुभव वाले लोग भी प्रोजेक्ट बना सकते हैं जबकि अनुभवी डेवलपर्स तेजी से नए विचारों का प्रोटोटाइप बना सकते हैं इससे पहले कि वे पूरी तरह उससे प्रतिबद्ध हों। यह स्टार्टअप्स के लिए विशेष रूप से सहायक है। नुकसान यह है कि डेवलपर्स अक्सर जेनरेट किए गए कोड को पूरी तरह से समझ नहीं पाएंगे। छोटे साइड प्रोजेक्ट्स के लिए यह ठीक है, लेकिन प्रोडक्शन-स्तर के सॉफ़्टवेयर में यह दीर्घकालिक समस्याओं और तकनीकी ऋण का कारण बन सकता है।
बाजार में कई उपकरण हैं जो वाइब कोडिंग को आसान बनाते हैं। कर्सर IDE, क्लॉड कोड CLI, गिटहब कोपायलट, लवएबल, रिप्लिट, v0, और अन्य आपको अपने वातावरण में सीधे एआई के साथ काम करने या वाइब कोडिंग के लिए समर्पित इंटरफेस प्रदान करते हैं। व्यक्तिगत रूप से, मैंने इन प्रोजेक्ट्स के लिए ज्यादातर कर्सर IDE और क्लॉड कोड CLI का उपयोग किया।
लेकिन बात यह है। ये उपकरण और मॉडल पैसे लेते हैं। पारंपरिक कोडिंग में, आप ज्यादातर अपने समय के साथ भुगतान कर रहे होते हैं। वाइब कोडिंग में, आप अपने बटुए के साथ भुगतान कर रहे होते हैं। और अगर आप नहीं जानते कि आप क्या कर रहे हैं, तो आप अपने बटुए और अपने समय दोनों के साथ भुगतान कर रहे होते हैं। इस पृष्ठ पर प्रत्येक प्रोजेक्ट को बनाने की लागत लगभग $10 से $20 है। अगर आप बहुत प्रयोग कर रहे हैं तो यह जोड़ जाता है। मैं मानता हूँ कि जैसे-जैसे ये मॉडल बेहतर और अधिक कुशल होंगे, लागत अंततः कम हो जाएगी। फिलहाल, यह एक बात है जिसे यह निर्णय लेते समय ध्यान में रखना चाहिए कि क्या वाइब कोडिंग आपके प्रोजेक्ट के लिए समझ में आती है।
यह जानने के लिये उत्सुक होकर, मैंने खुद वाइब कोडिंग आजमाई और इस पृष्ठ को बनाया ताकि वास्तविक प्रोजेक्ट्स के माध्यम से इस सिद्धांत की खोज कर सकूँ। मैं केवल उत्पाद नहीं बना रहा हूँ, मैं यह परीक्षण और प्रदर्शन कर रहा हूँ कि वाइब कोडिंग वास्तव में क्या करने में सक्षम है। यह सिर्फ मज़े के लिए है, लेकिन यह दिखाता है कि जैसे-जैसे ये मॉडल बेहतर होते रहेंगे, भविष्य में कोडिंग कैसी दिख सकती है।
अनंत बंदर प्रमेय
क्या आपने कभी अनंत बंदर प्रमेय के बारे में सुना है? यह एक दार्शनिक विचार प्रयोग है जो कहता है कि अगर आप अनंत बंदरों को अनंत टाइपराइटर और अनंत समय दें, तो अंततः उनमे से कोई एक यादृच्छिक रूप से की-प्रेस करके विलियम शेक्सपियर के सम्पूर्ण कार्य उत्पन्न कर देगा।
अजीब लगता है, है न? लेकिन यहाँ चीज़ रोमांचक है। वाइब कोडिंग कुछ वैसा ही है, बस जिसकी जगह बंदर हैं वहाँ एआई मॉडल हैं, टाइपराइटरों की जगह कोडिंग भाषाएँ हैं, और शेक्सपियर की जगह काम करने वाला सॉफ़्टवेयर मिल रहा है।
सोचिए। बड़े भाषा मॉडल अरबों लाइनों के कोड, पैटर्न और उदाहरणों पर प्रशिक्षित होते हैं। जब आप एक LLM को एक प्रॉम्प्ट देते हैं, तो यह वास्तव में आपके समस्या को इंसान डेवलपर की तरह चरण-दर-चरण “सोच” कर हल नहीं कर रहा होता। इसके बजाय, यह प्रशिक्षण के दौरान सीखे गए पैटर्न के आधार पर अगले सबसे संभावित टोकन की भविष्यवाणी कर रहा होता है। यह सांख्यिकीय रूप से सही दिखने वाले कोड को जनरेट करके शिक्षित अनुमान लगा रहा है।
और किसी तरह, अक्सर यह काम कर जाता है। मॉडल ऐसा कोड आउटपुट करता है जो वास्तव में कंपाइल होता है, चलता है और आपकी समस्या हल कर देता है। समझ के माध्यम से नहीं, बल्कि अत्यधिक पैमाने पर संभाव्यता-पैटर्न मिलान के माध्यम से। यह ऐसा है जैसे ब्रह्मांड का सबसे परिष्कृत यादृच्छिक टेक्स्ट जनरेटर “सही” उत्तर ढूंढ ले। पर यहाँ फर्क गति है। उन बंदरों को शाब्दिक अनंत चाहिए होगा। आपका एआई? कुछ सेकंड या मिनटों में वहाँ पहुँच जाता है।
तो एक तरह से, जब आप वाइब कोडिंग का उपयोग करते हैं, तो आप लाखों कोड लाइनों के पैटर्न को, एक मॉडल में distilled करके, समाधान जनरेट करने के लिए इस्तेमाल कर रहे होते हैं। यह सचेत समस्या-समाधान नहीं है, यह सांख्यिकीय जादू है। और यही कारण है कि यह इतना शक्तिशाली है और, स्वीकार करना पड़ेगा, यही कारण है कि यह समझना कि कोड वास्तव में क्या करता है, अभी भी महत्वपूर्ण है।
प्रश्न उत्तर से अधिक महत्वपूर्ण है
यहाँ एक महत्वपुर्ण बात है जो अक्सर अनदेखी हो जाती है। वाइब कोडिंग किसी भी उत्तर को पाने के बारे में नहीं है, यह सही प्रश्न पूछने के बारे में है। दीप थॉट सुपरकम्प्यूटर को सोचिए जो द हिचहाइकर गाइड टू द गैलेक्सी में आता है। उसने जीवन, ब्रह्मांड, और हर चीज़ के अंतिम प्रश्न का उत्तर निकालने में लाखों साल लगाए, और अंततः वह आपको संख्या 42 दे देता है। उत्तर तकनीकी रूप से सही था, पर बेकार था क्योंकि असली समस्या यह पता लगाना था कि सबसे पहले किस प्रश्न को पूछा जाए।
वाइब कोडिंग भी वैसा ही काम करती है। आपके प्रॉम्प्ट सब कुछ हैं, लेकिन संदर्भ प्रबंधन भी उतना ही महत्वपूर्ण है। एक अस्पष्ट प्रॉम्प्ट आपको अस्पष्ट कोड देगा, और अगर आप सही फ़ाइलें, दस्तावेज़ीकरण, या उदाहरण संदर्भ के रूप में नहीं देते, तो मॉडल यह समझ नहीं पाएगा कि आपको वास्तव में क्या चाहिए। अगर आप कोडिंग, आर्किटेक्चर और सिस्टम डिज़ाइन समझते हैं, तो आप विस्तृत प्रॉम्प्ट लिख सकते हैं और उत्तम समाधान की ओर LLM को मार्गदर्शित करने के लिए सही संदर्भ क्यूरेट कर सकते हैं। पर अगर आपको पता ही नहीं है कि किसके लिए पूछना है या किस संदर्भ को देना है, तो एआई भी नहीं समझेगा।
यही कारण है कि वाइब कोडिंग अनुभवी डेवलपर्स के लिए बहुत शक्तिशाली है। हमें पता होता है कि अच्छा कोड कैसा दिखता है, हम जोखिम समझते हैं, और हम ऐसे प्रॉम्प्ट लिख सकते हैं जो मॉडल को उन जोखिमों से दूर ले जाएँ। शुरुआती जिनके पास तकनीकी पृष्ठभूमि नहीं है, उनके लिए यह एक वास्तविक सीमा बन जाती है। आपको काम करने वाला कोड मिल सकता है, पर बिना यह समझे कि क्या गलत हुआ या आगे क्या पूछना है, आप फंस जाते हैं।
जब वाइब कोडिंग पर्याप्त नहीं है
नवीनतम एआई मॉडल प्रभावशाली हैं, पर वे कोई चमत्कारिक समाधान नहीं हैं। वाइब कोडिंग प्रोडक्शन में काम कर सकती है, पर केवल तभी जब आप इसके प्रति गंभीर हों। आपको मजबूत यूनिट परीक्षणों की ज़रूरत है। आपको यह स्पष्ट स्रोतों की ज़रूरत है कि आपका सिस्टम क्या करना चाहिए। आपको यह पकडना होगा कि कब चीज़ें टूट रही हैं या डिफ्ट कर रही हैं। और आपको हैकर की मानसिकता की ज़रूरत है। बॉक्स के बाहर सोचिए और अप्रत्याशित तरीकों से अपने वाइब-कोडित प्रोजेक्ट को तोड़कर देखें। किन एज़ मामलों पर आपने विचार नहीं किया? कौनसी सुरक्षा कमजोरियाँ कोई explot कर सकता है? यही चीज़ें उस कोड को अलग करती हैं जो केवल काम करता है और उस कोड को जो वास्तव में मजबूत होता है।
लेकिन बात यह भी है। एआई आपका मालिक नहीं है। आप एआई के मालिक हैं। जो यह जेनरेट करता है उसे बस स्वीकार मत कर लीजिए। उसकी समीक्षा करें। उसका परीक्षण करें। उसे तोड़कर देखें। और ईमानदारी से कहूँ तो, अपनी कोडबेस के कुछ हिस्सों के लिए आपको पुराने तरीके की कोडिंग पर वापस जाना होगा। गहराई से सोचिए, खुद लिखिए। वाइब कोडिंग गति बढ़ाती है, पर जब बात मायने रखती है तो यह वास्तविक प्रोग्रामिंग का विकल्प नहीं है।
एक और बात जो मैंने सीखी है। कभी-कभी आपको एआई के साथ सत्र समाप्त करके नया सत्र शुरू करना ही पड़ता है। जैसे-जैसे आपकी बातचीत का इतिहास बड़ा होता जाता है, मॉडल का प्रदर्शन घटता जाता है। यह अधिक गलतियाँ करता है, कम सुसंगत कोड जेनरेट करता है, और अधिक बार हैलुसीनेशन करने लगता है। अगर आप इसे पकड़कर रोकते नहीं हैं, तो ये त्रुटियाँ एक-दूसरे पर टिकने लगती हैं और चीज़ें धीरे-धीरे और बुरी हो जाती हैं। यह वैसा ही है जैसे एक दस्तावेज़ जिसे बार-बार फोटोकॉप किया गया हो उसे पढ़ने की कोशिश करना। ताज़ा शुरुआत चीज़ों को साफ़ और तेज़ रखती है।
वाइब-कोडित परियोजनाएँ
नीचे दो प्रोजेक्ट्स हैं, स्टेयर्स (repo) और ट्रांसेंडेंटल (repo), जिन्हें मैंने वाइब कोडिंग की विधि का उपयोग करके बनाया। ज्यादातर प्रॉम्प्ट से जनरेट किए गए, मैनुअल काम संदर्भ प्रदान करने, डिबग करने, और गिटहब पेजेस पर डिप्लॉय करने तक सीमित था। ये मज़ेदार स्टैटिक साइट प्रयोग हैं जो दिखाते हैं कि जब आप रचनात्मक विचारों को कोड के साथ वाइब कोडिंग के माध्यम से जोड़ते हैं तो क्या संभव है। दोनों गिटहब पर होस्ट हैं।