TypeScript की 1 लाख लाइनों को Rust में: Claude Code के साथ एक वास्तविक पोर्टिंग अनुभव
(blog.vjeux.com/2026)पूर्व 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 करना
- उदाहरण: एक ही concept (
- 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 की उपयोगिता साबित करने वाला उदाहरण है, और साथ ही इसकी सीमाओं को भी स्पष्ट रूप से दिखाने वाला एक प्रतिनिधि प्रयोग
अभी कोई टिप्पणी नहीं है.