- सॉफ़्टवेयर डेवलपमेंट के नए युग में बदलाव महसूस हो रहा है: मैं जो काम करता हूँ, उसमें मेरी सीधी भागीदारी कम हो गई है
- LLM के ज़रिये फ़ंक्शन लिखने और त्रुटियाँ ठीक करने का काम सौंपते हुए डूबकर काम करने की भावना कम हो रही है
- मैनुअल से auto-pilot स्थिति में बदलाव हुआ है, जहाँ LLM के काम की समीक्षा और उसे स्वीकार करने की प्रक्रिया बार-बार दोहराई जाती है
- जब कोई अपने कौशल में पूरी तरह डूब जाता है, तो वह Flow की अवस्था में प्रवेश करता है। यह शिल्पकार बनने जैसा है
- इसका मतलब है वह स्थिति जहाँ कर्ता और कर्म की सीमा मिट जाती है और जटिल समस्याओं को हल करने में गहराई से डूबे रहते हैं
- बहुत से लोग मानते हैं कि प्रोग्रामिंग वर्कफ़्लो में LLM के हालिया बढ़ते उपयोग ने बस उच्च-स्तरीय abstraction का एक और स्तर जोड़ा है
- Binary → Assembly → C → उच्च-स्तरीय भाषाओं तक के विकास में हमें धीरे-धीरे अधिक अधिकार मिले
- लेकिन LLM का आगमन सिर्फ abstraction के एक और स्तर का बदलाव नहीं है
- ऊपर बताए गए Binary से Assembly और Assembly से C में बदलाव ने cognitive load कम किया और तर्क पर ध्यान केंद्रित करने में मदद की
- LLM प्रोग्राम के तर्क की बजाय उसकी पूरी संरचना पर ध्यान केंद्रित करवाता है → यही इसे पहले के बदलावों से अलग बनाता है
- प्रोग्राम कई टुकड़ों को जोड़कर बनता है
- हम प्रोग्राम को बनाने वाले हर टुकड़े को समझकर अपने प्रोग्राम को समझते हैं
- अब टुकड़े बनाने का काम सौंपकर, हम शिल्पकार का काम सौंप रहे हैं और बनाने की प्रक्रिया का प्रबंधन कर रहे हैं
- हम निर्माण में कम शामिल हो रहे हैं, और LLM द्वारा बनाए गए कोड पर हमारी स्वामित्व-भावना भी कम हो रही है
- यानी, हमने craftsmanship को management में बदल दिया है
- हम जो सटीक टुकड़े बनाते हैं, उनकी तुलना में अब काम के परिणाम में ज़्यादा रुचि लेने लगे हैं
- प्रोग्रामिंग अब लक्ष्य नहीं, बल्कि साधन बन गई है
- सौभाग्य से, या दुर्भाग्य से, कोड में अब भी समस्याएँ आती हैं, और उसके संदर्भ को समझकर उन्हें ठीक करना पड़ता है
- इसका मतलब है कि प्रोग्रामिंग प्रक्रिया में अब भी मानवीय हस्तक्षेप ज़रूरी है
- LLM एजेंट का उपयोग करके प्रोग्रामिंग में और गहराई से डूबा जा सकता है
- हम उच्च-स्तरीय abstraction पर ध्यान दें, और LLM एजेंट मेहनत से बदलाव करते रहें
- लेकिन अभी उपयुक्त टूल मौजूद नहीं हैं
- लगातार होने वाले अनेक बदलावों का cognitive load बहुत बड़ा है, और इसे संभालने के तरीक़े की ज़रूरत है
- मानव स्मृति की सीमाएँ हैं (अल्पकालिक स्मृति में 7±2 आइटम ही याद रह पाते हैं), इसलिए ऐसे अच्छी तरह डिज़ाइन किए गए टूल चाहिए जो abstraction के अलग-अलग स्तरों पर जानकारी को व्यक्त कर सकें
- तब हम विवरण समझते हुए बड़े चित्र तक ज़ूम आउट कर सकते हैं
2 टिप्पणियां
क्या craftsmanship सिर्फ़ code में ही होना चाहिए? क्या software, यानी product में ही craftsmanship नहीं हो सकती?
मूल रूप से प्रोग्रामिंग कोई लक्ष्य नहीं, बल्कि एक साधन रही है.
ऐसे tools का विकास इस तरह हुआ है कि इंसान बेकार की चीज़ों के बजाय बड़े विचारों और design पर अपना समय लगा सके.
compiler, operating system, scripting languages वगैरह..