• लंबे समय से कमी महसूस हो रही SQLite के लिए high-quality development tools को AI की मदद से कम समय में पूरा किया गया
  • आधिकारिक grammar spec की अनुपस्थिति और जटिल C codebase के कारण parser बनाना सबसे बड़ी चुनौती थी
  • Claude Code जैसे AI coding agents का उपयोग कर शुरुआती implementation तेज़ी से आगे बढ़ी, लेकिन spaghetti code की समस्या के कारण Rust-आधारित rewrite करना पड़ा
  • AI ने code generation·refactoring·learning support·UX improvement में बड़ी दक्षता दिखाई, लेकिन design delay·code disconnect·dependency addiction जैसे दुष्प्रभाव भी सामने आए
  • निष्कर्षतः AI केवल implementation speed बढ़ाने का tool है, design और software की direction की ज़िम्मेदारी इंसान को ही लेनी चाहिए

AI के साथ SQLite development tool बनाने के 3 महीनों का रिकॉर्ड

  • लंबे समय से SQLite के लिए high-quality development tools की इच्छा थी, लेकिन मौजूदा open source tools reliability, speed और flexibility के मामले में कमज़ोर थे
    • PerfettoSQL को maintain करते समय formatter, linter, editor extension जैसी सुविधाओं की ज़रूरत थी, लेकिन उपयुक्त tools नहीं थे
    • निजी प्रोजेक्ट के रूप में नया tool बनाना चाहते थे, लेकिन कठिनाई और दोहराए जाने वाले काम के बोझ के कारण यह कई वर्षों तक टलता रहा

प्रोजेक्ट की कठिनाइयाँ

  • SQLite में आधिकारिक grammar spec या स्थिर parser API नहीं है
    • यह अंदरूनी तौर पर parse tree नहीं बनाता, इसलिए source code से सीधे parser logic निकालना पड़ा
    • 400 से अधिक grammar rules को एक-एक करके map करना पड़ता है, और test लिखना व debugging बहुत दोहरावदार और थकाऊ काम है
  • SQLite का C codebase जटिल और अत्यंत सघन है, इसलिए उसे समझना कठिन है
    • virtual table API और implementation को समझने में ही कई दिन लग गए; इसकी संरचना काफ़ी दुरूह थी

AI के साथ development process

  • 2025 के अंत से Claude Code जैसे AI coding agents का गंभीरता से उपयोग शुरू किया गया
    • शुरुआत में AI को ज़्यादातर design और implementation सौंपकर “vibe-coding” शैली में काम किया गया
    • नतीजा काम तो करता था, लेकिन codebase spaghetti जैसी संरचना में उलझ गई और maintain करना लगभग असंभव हो गया
  • इसके बाद पूरे सिस्टम को Rust में rewrite करते हुए संरचना को फिर से बनाया गया
    • C की जगह Rust का उपयोग कर ऊपरी स्तर के components, जैसे validator और language server, बनाना आसान हुआ
    • AI को “autocomplete को मज़बूत करने वाले tool” तक सीमित किया गया, और design, review व testing को सीधे खुद lead किया गया
    • linting, validation, test automation आदि जैसे AI output को verify करने के लिए scaffolding तैयार की गई

AI ने क्या संभव बनाया

  • जड़ता पर काबू

    • AI ने काम को ठोस problem units में तोड़कर शुरुआत आसान बना दी
    • “SQLite parsing को समझना है” से “AI द्वारा सुझाए गए approach की review करनी है” में बदलाव आया, जिससे execution speed बढ़ी
  • code generation और refactoring की गति

    • जब requirements स्पष्ट हों, तो AI standard और consistent code बहुत तेज़ी से लिख देता है
    • लेकिन non-standard design, जैसे parser structure, में यह उल्टा बाधा बन सकता है, इसलिए वहाँ सीधे खुद लिखना ज़रूरी था
    • बड़े पैमाने पर code generation के बाद लगातार refactoring अनिवार्य है, और इसी से quality बनी रहती है
  • learning assistant की भूमिका

    • AI ने Wadler-Lindig formatting algorithm जैसे नए concepts को real time में समझाया
    • Rust, VS Code extensions जैसे कम परिचित क्षेत्रों में भी तेज़ी से entry मिल सकी
    • जब project context खो जाता था, तब “इस component को समझाओ” जैसे सवालों से तुरंत context restore हो जाता था
  • पूर्णता में सुधार

    • editor extension, Python bindings, WASM playground, documentation site जैसी अतिरिक्त सुविधाओं की development cost कम हुई
    • implementation का बोझ घटने से UX improvement पर अधिक ध्यान दिया जा सका, जैसे error messages और CLI design के ज़रिए user experience को बेहतर बनाना

AI उपयोग के दुष्प्रभाव

  • लत जैसी प्रवृत्ति

    • “बस एक prompt और” को दोहराने वाली slot machine जैसी reward structure
    • जितनी अधिक थकान, उतनी ही prompt quality गिरती है, नतीजे और खराब होते हैं, और एक दुष्चक्र बन जाता है
  • codebase से disconnect

    • AI द्वारा generated code जितना बढ़ता है, बारीक संरचना की समझ उतनी कम होती जाती है
    • context खोने पर AI के साथ बातचीत भी लंबी और कम प्रभावी हो जाती है
    • समाधान के तौर पर generated code बनने के तुरंत बाद उसे खुद पढ़ने और “मैं इसे कहाँ अलग तरह से लिखता” यह जाँचने की आदत डाली गई
  • design delay और क्षरण

    • refactoring आसान होने से core design decisions को टालने की प्रवृत्ति पैदा हुई
    • tests बहुत हों तब भी मूलभूत design errors को छिपाना मुश्किल होता है, और अंततः पूरे rewrite की ज़रूरत पड़ सकती है
  • समय-बोध का अभाव

    • AI code के temporal context या evolution process को नहीं समझता
    • इससे पुरानी गलतियाँ दोहराने या पहले से सुलझी समस्याओं को फिर से खंगालने जैसी अक्षमताएँ पैदा होती हैं
    • documentation से कुछ हद तक इसकी भरपाई हो सकती है, लेकिन design intent को पूरी तरह रिकॉर्ड करना कठिन है

AI उपयोग की सापेक्षता

  • जिन क्षेत्रों को गहराई से समझा गया हो, वहाँ AI शानदार साबित होता है; तेज़ review और iteration संभव होते हैं
    • उदाहरण: parser rules generation, जहाँ अपेक्षाकृत स्पष्ट सही उत्तर होता है
  • आंशिक रूप से परिचित क्षेत्रों में यह learning tool के रूप में उपयोगी है, लेकिन लगातार सतर्कता ज़रूरी है
    • उदाहरण: formatter algorithm सीखना
  • जब यह भी स्पष्ट न हो कि क्या बनाना है, तब AI उल्टा नुकसानदेह हो सकता है
    • उदाहरण: architecture design phase में unproductive loops बनना
  • verifiable problems जैसे compile होना या tests pass करना, इनमें AI मज़बूत है, लेकिन
    design और API quality जैसे बिना निश्चित उत्तर वाले सवालों में यह कमज़ोर पड़ता है

निष्कर्ष

  • 8 साल से सोचे जा रहे SQLite tool को सिर्फ 3 महीनों में साकार किया जा सका, और इसका बड़ा कारण AI था
    • लेकिन यह सफ़र कोई साधारण success story नहीं था; इसके साथ AI पर निर्भरता की सीमाएँ और उसकी कीमत भी जुड़ी हुई थीं
  • AI implementation को तेज़ करने वाला accelerator है, लेकिन design का विकल्प नहीं
    • यह technical questions के जवाब सटीक दे सकता है, लेकिन इतिहास, रुचि और user intuition की उसमें कमी होती है
  • असली सबक यह है कि AI की मदद से भले ही हम दीवार से जल्दी टकराएँ,
    design की दिशा और ‘software की आत्मा’ की ज़िम्मेदारी इंसान को ही लेनी होगी
  • आगे ज़रूरत है ऐसे प्रोजेक्ट अनुभव साझा करने की जो असली users और maintenance की कसौटी पर टिकें
    • यानी केवल experiments नहीं, बल्कि व्यावहारिक और टिकाऊ AI-collaborative development अनुभवों का संचय

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.