27 पॉइंट द्वारा GN⁺ 2024-12-07 | 12 टिप्पणियां | WhatsApp पर शेयर करें
  • डेवलपर्स द्वारा AI का उपयोग करने के दो प्रमुख पैटर्न हैं
    • Bootstrapper:
      • Bolt, v0, screenshot-to-code AI जैसे टूल्स का उपयोग करके जल्दी शुरुआती प्रोटोटाइप बनाते हैं।
      • डिज़ाइन या कॉन्सेप्ट को शुरुआती बिंदु बनाकर AI की मदद से शुरुआती codebase तैयार करते हैं, और कुछ घंटों या कुछ दिनों में काम करने वाला प्रोटोटाइप विकसित कर लेते हैं
    • Iterator:
      • Cursor, Cline, Copilot, WindSurf जैसे टूल्स को रोज़मर्रा के development में इस्तेमाल करके code completion, जटिल refactoring, testing और documentation generation करते हैं

अनुभवी डेवलपर्स और शुरुआती डेवलपर्स के बीच AI उपयोग का अंतर

  • अनुभवी डेवलपर्स: AI द्वारा सुझाए गए कोड को लगातार refactor करते हैं, edge cases संभालते हैं, type definitions को मज़बूत करते हैं, और architecture decisions की समीक्षा करते हैं
  • शुरुआती डेवलपर्स: AI के output को जैसा है वैसा स्वीकार करने की प्रवृत्ति रखते हैं, जिससे ऐसे कोड का जोखिम पैदा होता है जो 'ताश के पत्तों से बने घर' की तरह वास्तविक वातावरण में समस्याएँ पैदा कर सकता है

AI टूल्स का विरोधाभास: ज्ञान का विरोधाभास

  • अनुभवी डेवलपर्स: जिन कामों को वे पहले से जानते हैं, उन्हें AI के ज़रिए तेज़ करते हैं
  • शुरुआती डेवलपर्स: क्या करना है, यह सीखने के लिए AI का उपयोग करने की कोशिश करते हैं
  • नतीजा: दक्षता के स्तर के अनुसार AI उपयोग की प्रभावशीलता में बड़ा अंतर आता है

गैर-विशेषज्ञों के लिए AI coding टूल्स में 70% समस्या

  • शुरुआती प्रगति: AI टूल्स की मदद से मनचाहा फीचर का 70% बहुत जल्दी लागू किया जा सकता है
  • बाकी 30%: छोटे bugs ठीक करने की कोशिश में नई समस्याएँ पैदा होती हैं, और उन्हें सुलझाने के दौरान और भी समस्याएँ पैदा होने का दुष्चक्र बन सकता है

AI टूल्स का प्रभावी उपयोग करने की रणनीतियाँ

  • AI draft pattern: AI से बुनियादी implementation तैयार कराएँ और फिर उसे manually review व refactor करें
  • AI को learning tool की तरह उपयोग करना: लगातार बातचीत के ज़रिए AI द्वारा बनाए गए कोड को समझें, साथ में बुनियादी programming concepts सीखें, और धीरे-धीरे अपना ज्ञान बढ़ाएँ
  • AI की सीमाओं को पहचानना: AI टूल्स prototype development, learning support और idea validation में उपयोगी हैं, लेकिन production-ready और maintainable software बनाने के लिए अब भी वास्तविक engineering knowledge की ज़रूरत है

एजेंटिक software engineering का उदय

  • Agentic systems: केवल निर्देशों का जवाब देने से आगे बढ़कर, ऐसे सिस्टम बन रहे हैं जो योजना बना सकते हैं, execute कर सकते हैं और iterate कर सकते हैं
  • भविष्य की दिशा: AI डेवलपर्स की जगह लेने के बजाय, एक अधिक सक्रिय सहयोगी के रूप में विकसित हो रहा है जो मानवीय मार्गदर्शन और विशेषज्ञता का सम्मान करते हुए पहल करके समस्याओं को हल करता है
  • AI पहले से ज्ञात patterns को implement करने, ideas का जल्दी prototype बनाने और अलग-अलग approaches तलाशने में उपयोगी है
  • यह दोहराए जाने वाले और रोज़मर्रा के coding tasks को automate करके अधिक दिलचस्प समस्याओं पर ध्यान केंद्रित करने में मदद करता है

AI टूल्स का उपयोग करते समय सावधानियाँ

  • User experience का महत्व: AI की मदद से जल्दी demo बनाया जा सकता है, लेकिन अगर error messages, edge cases और UI states को बारीकी से नहीं संभाला गया, तो वास्तविक उपयोगकर्ताओं को असुविधा हो सकती है
  • शिल्पकारी का पुनर्जागरण:
    • AI ने software development को तेज़ बना दिया है, लेकिन इससे वास्तविक consumer-quality अनुभव बनाने की कला खोने का जोखिम भी है।
    • AI टूल्स रोज़मर्रा के coding tasks संभालकर डेवलपर्स को महत्वपूर्ण details पर ध्यान देने में मदद कर सकते हैं।

निष्कर्ष

  • AI की भूमिका:
    • AI का काम सिर्फ़ ज़्यादा कोड तेज़ी से लिखना नहीं, बल्कि बेहतर software बनाने में मदद करना है
    • AI software quality को नाटकीय रूप से बेहतर नहीं बनाता।
  • software development के कठिन हिस्सों में अब भी मानवीय judgment की ज़रूरत होती है।
  • AI बेहतर solutions खोजने के लिए तेज़ exploration संभव बनाता है, लेकिन यह अच्छे software practices की जगह नहीं ले सकता।
  • मानवीय ज़िम्मेदारी: AI का समझदारी से उपयोग करना, engineering principles को बनाए रखना और software quality बेहतर करना अब भी इंसानों की ज़िम्मेदारी है

12 टिप्पणियां

 
dbs0829 2024-12-10

तकनीक का उपयोग करना अच्छी बात है, लेकिन बहुत से लोग सोचने का काम भी उसी पर छोड़ देते हैं, और यह बात खासकर शिक्षा जैसी जगहों पर और ज़्यादा दिखती है, इसलिए चिंता होती है। सच कहूँ तो मैं ऐसे लोगों के साथ काम नहीं करना चाहूँगा।

 
kandk 2024-12-09

शायद यह उस बहस जैसा ही है कि IDE डेवलपर्स को बिगाड़ देता है..

 
savvykang 2024-12-07

ग्राहकों द्वारा जनरेट किए गए AI कोड को ठीक करते-करते थक गया हूँ
जब AI खुद निर्णय लेने लगता है, तो इसका कोई जवाब नहीं दिखता।

 
iolothebard 2024-12-07

AI को feedback देते रहो तो लगता है कि चीज़ें बेहतर हो रही हैं… लेकिन किसी बिंदु पर आकर सब बिगड़ जाता है। उस पल को पकड़ने का तरीका आना चाहिए। और जब वह पल आए, तो तय करना होगा कि AI को छोड़ना है या फिर से शुरुआत करनी है।

 
yadameda 2024-12-07

production-ready (मुख्य लेख में: production-ready) का अनुवाद क्या करने पर सबसे स्वाभाविक लगेगा?

वास्तविक सेवा के लिए पूरी तरह तैयार स्तर
प्रोडक्ट-स्तर

 
kandk 2024-12-09

लॉन्च के लिए तैयार!

 
binaryeast 2024-12-08

मैं आमतौर पर इसे 출시 가능 या 출시 준비된 के रूप में अनुवाद करता/करती हूँ.

 
jhj0517 2024-12-08

"लॉन्च के लिए तैयार" अच्छा लग रहा है!

 
bus710 2024-12-08

"(वास्तविक उपयोग या ग्राहक-उपयोग के लिए) डिप्लॉय करने के लिए तैयार" काफ़ी हद तक ऐसा कैसा रहेगा?

 
savvykang 2024-12-07

वास्तविक उपयोग में परखी गई चीज़ कैसी होगी?

 
soomtong 2024-12-09

लगता है कि प्रोडक्शन में परखी हुई चीज़ के लिए अक्सर battle tested अभिव्यक्ति का इस्तेमाल किया जाता है।

 
GN⁺ 2024-12-07
Hacker News की राय
  • AI ने अतीत के कई टूल्स की तरह programming के कुछ हिस्सों को replace करने की कोशिश की है। लेकिन मूल काम के लिए अब भी इंसानी दिमाग की ज़रूरत होती है

    • AI complexity management जैसे मूल काम नहीं कर सकता
    • AI अंग्रेज़ी में बातचीत कर सकता है, इसलिए यह पिछली कोशिशों से ज़्यादा flexible है, लेकिन बुनियादी problem solving में इसकी अब भी सीमाएँ हैं
  • AI टीम के एक उत्साही junior developer जैसा है

    • junior developer और AI tools, दोनों में bugs ज़्यादा होते हैं और ये verbose code लिखने की प्रवृत्ति रखते हैं
    • AI feedback से सीख नहीं सकता, इसलिए इसकी बार-बार होने वाली गलतियों की समीक्षा करते रहना पड़ता है
  • AI tools का उपयोग करके नए tools तेज़ी से विकसित किए जा सके

    • AI की वजह से कई दिनों का काम कुछ घंटों में पूरा किया जा सका
    • भले ही AI ने पूरे काम का 70% या 42.5% ही किया हो, फिर भी यह बड़ा सुधार था
  • junior developers के लिए AI दोधारी तलवार है

    • अगर AI को सीखने का shortcut बना लिया जाए, तो असली learning छूट जाती है
    • लेकिन AI को mentor की तरह इस्तेमाल किया जाए, तो गहराई से सीखना संभव है
    • अगर AI junior developers के काम को replace करने लगे, तो hiring की समस्या पैदा हो सकती है
  • "भरोसा करो, लेकिन verify भी करो" वाला pattern महत्वपूर्ण है

    • अगर AI द्वारा लिखा गया code compile हो जाए और test cases pass कर ले, तो यह एक सकारात्मक संकेत है
    • उदाहरण के लिए, Rust के csscolorparser को Python से bind करने वाला एक project है
  • AI तेज़ी से code लिख सकता है, लेकिन learning process तेज़ नहीं हो जाता

    • AI की मदद से तेज़ी से आगे बढ़ा जा सकता है, लेकिन अच्छी तरह structured code लिखने में फिर भी समय लगता है
  • Copilot जटिल कामों में fail हो जाता है

    • AI scalability में सीमाएँ दिखा रहा है
    • भविष्य में quantum computing जैसी technologies की ज़रूरत पड़ सकती है
  • GenAI अच्छी तरह ज्ञात requirements वाले solutions में गहराई वाले नतीजे दे सकता है

    • जटिल समस्याओं में यह लगभग 50% तक ही प्रदर्शन कर पाता है
    • detailed task list बनाकर हर task को अलग-अलग हल करने का तरीका इस्तेमाल किया जा रहा है
  • AI के काम को verify करना महत्वपूर्ण है

    • AI द्वारा सुझाया गया code चलने लायक था, लेकिन वह security issues वाली library का उपयोग कर रहा था
    • AI का code executable हो, तब भी verification ज़रूरी है
  • जिन लोगों का कहना है कि AI से productivity बहुत बढ़ गई है, ऐसे लोगों से वास्तव में मिलना मुश्किल है

    • AI tools सुविधाजनक हैं, लेकिन coding के सिर्फ कुछ हिस्सों में ही उपयोगी हैं