Porting 100 ribu baris TypeScript ke Rust dengan Claude Code di dunia nyata
(blog.vjeux.com/2026)Mantan insinyur Facebook Christopher Chedeau (Vjeux) melakukan eksperimen mem-porting engine battle Pokemon Showdown (sekitar 100 ribu baris TypeScript) ke Rust dengan memanfaatkan Claude Code
Tujuan proyek
- Membangun oracle berkecepatan tinggi (sistem referensi) untuk pelatihan AI battle Pokemon
- Implementasi TypeScript yang ada → terlalu lambat (simulasi jutaan battle tidak memungkinkan)
- Bahasa target: Rust (berperforma tinggi) → tetapi pengalaman Rust yang dimiliki nol
Pencapaian utama
- Sekitar 100 ribu baris berhasil di-porting dalam 1 bulan (pekerjaan aktual sekitar 2–4 minggu)
- Menghasilkan sekitar 5.000 commit
- Kecepatan eksekusi meningkat 3,5x
- Hasil differential testing menunjukkan tingkat kecocokan 99,96% (berdasarkan 2 juta battle acak)
- Sisa 0,04% diperkirakan berasal dari bug di kode TS asli
Strategi kunci keberhasilan
- Mengadopsi differential testing
- Menjalankan versi TS asli vs versi Rust secara bersamaan → membandingkan hasil
- Kasus yang tidak cocok → log ditunjukkan ke Claude lalu diminta memperbaiki
- Tetap bisa memverifikasi meski hampir tidak memahami sintaks Rust
Kesulitan utama yang dihadapi Claude
- Jago mem-porting file individual ↔ tetapi sering bermasalah pada integrasi antarfile
- Contoh: konsep yang sama (
move) didefinisikan sebagai struct yang berbeda
- Contoh: konsep yang sama (
- Batas context window → informasi penting hilang selama proses ringkasan di tengah jalan
- Ada kecenderungan ingin membuatnya “lebih baik” → mengabaikan instruksi eksplisit untuk “porting baris demi baris” dan mencoba refactoring → menghasilkan banyak bug
- Saat diminta optimisasi → rencananya tampak bagus, tetapi peningkatan performa nyata hampir tidak ada (sebagian malah menjadi lebih lambat)
Hack workflow yang unik
- Mengotomatisasi permintaan persetujuan pengguna dari Claude
- Dengan AppleScript, Enter ditekan otomatis setiap beberapa detik → bisa berjalan tanpa pengawasan selama 24 jam
- (Ada risiko keamanan, tetapi diterima karena hanya untuk tujuan oracle sekali pakai)
Posisi terkini alat AI coding (evaluasi)
- Transformasi mekanis dan pekerjaan porting skala besar → sangat kuat
- Tugas tingkat tinggi seperti optimisasi performa dan desain arsitektur → masih kurang
- Perdebatan di Hacker News
- Skeptis: sulit dipelihara, kode yang “sekadar bisa di-compile”
- Pendukung: cukup bisa dipercaya dengan differential testing + penghematan waktu sangat besar dibanding manusia
3 pelajaran untuk penerapan di dunia kerja
- Sistem pengujian otomatis yang ketat itu wajib (tanpa differential testing, peluang gagal sangat tinggi)
- Instruksi yang jelas dan ruang lingkupnya sempit paling efektif (“porting baris demi baris” O vs “tolong perbaiki” X)
- AI hanyalah alat → developer tetap harus mendiagnosis masalah, merancang pertanyaan, dan menjaga arah pekerjaan
→ Kasus seseorang yang sama sekali tidak mengenal Rust tetapi berhasil memindahkan kode skala 100 ribu baris ke tingkat yang praktis dalam sebulan → eksperimen representatif yang sekaligus membuktikan kegunaan AI coding dan juga dengan jelas menunjukkan keterbatasannya
1 komentar
Ini mengabaikan fakta bahwa penulisan test case bukan solusi serba bisa. Bukan hanya soal input dan output yang normal saja. Pada akhirnya, 100 ribu baris itu tetap harus ditinjau ulang.