पूर्व Facebook इंजीनियर Christopher Chedeau (Vjeux) ने Pokemon Showdown battle engine (लगभग 1 लाख लाइन TypeScript) को Claude Code की मदद से Rust में पोर्ट करने का प्रयोग किया

प्रोजेक्ट का लक्ष्य

  • Pokemon battle AI training के लिए एक high-speed oracle (reference system) बनाना
  • मौजूदा TypeScript implementation → बहुत धीमा (लाखों battle simulation संभव नहीं)
  • target language: Rust (high performance) → लेकिन उन्हें Rust का शून्य अनुभव था

मुख्य उपलब्धियां

  • 1 महीने में (वास्तविक काम लगभग 2~4 हफ्ते) करीब 1 लाख लाइनों का पोर्ट पूरा
  • लगभग 5,000 commit बने
  • execution speed में 3.5x सुधार
  • differential test में परिणाम मिलान दर 99.96% (20 लाख random battle के आधार पर)
    • बाकी 0.04% को मूल TS code के bug होने का अनुमान

सफलता की मुख्य रणनीति

  • differential testing अपनाना
    • TS source और Rust version को साथ चलाकर → परिणामों की तुलना
    • mismatch के मामले → Claude को log दिखाकर सुधार के निर्देश
  • Rust syntax लगभग न जानते हुए भी verification संभव रहा

Claude को आई मुख्य कठिनाइयां

  • अलग-अलग file पोर्ट करना अच्छा रहा ↔ files के बीच integration में बार-बार समस्या आई
    • उदाहरण: एक ही concept (move) को अलग-अलग struct के रूप में define करना
  • context window की सीमा → बीच के summary process में महत्वपूर्ण जानकारी खोना
  • “इसे और बेहतर” बनाने की प्रवृत्ति → स्पष्ट “line-by-line porting” निर्देश को नज़रअंदाज़ कर refactoring की कोशिश → bug बढ़े
  • optimization request → योजना शानदार लगती थी, लेकिन वास्तविक performance improvement लगभग नहीं मिला (कुछ मामलों में उल्टा धीमा हुआ)

दिलचस्प workflow hack

  • Claude के user approval request को automate करना
    • AppleScript से हर कुछ सेकंड में Enter अपने-आप दबाना → 24 घंटे unattended run
    • (security risk था, लेकिन one-off oracle उद्देश्य के लिए इसे स्वीकार किया गया)

AI coding tools की वर्तमान स्थिति (मूल्यांकन)

  • mechanical transformation और large-scale porting का काम → बहुत शक्तिशाली
  • performance optimization, architecture design जैसे high-level काम → अभी भी कमजोर
  • Hacker News पर बहस
    • skeptical पक्ष: maintain करना असंभव, “सिर्फ compile होने वाला” code
    • support करने वाला पक्ष: differential testing से पर्याप्त भरोसा संभव + इंसानों की तुलना में समय की भारी बचत

व्यावहारिक उपयोग के लिए 3 सबक

  • मजबूत automated testing system अनिवार्य है (differential testing के बिना असफलता की संभावना बहुत अधिक)
  • स्पष्ट और सीमित दायरे वाले निर्देश सबसे अच्छा काम करते हैं (“line-by-line porting” O vs “इसे सुधारो” X)
  • AI सिर्फ एक tool है → developer को अभी भी problem diagnosis, question design और direction बनाए रखना होता है

→ Rust बिल्कुल न जानने वाला व्यक्ति 1 लाख लाइनों के कोडबेस को एक महीने में व्यावहारिक स्तर तक ले गया → यह AI coding की उपयोगिता साबित करने वाला उदाहरण है, और साथ ही इसकी सीमाओं को भी स्पष्ट रूप से दिखाने वाला एक प्रतिनिधि प्रयोग

https://aisparkup.com/posts/8701

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

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