Opus 5.5 Pindahkan Compiler TypeScript ke Rust dalam Dua Minggu

Sebuah proyek GitHub bernama ts-rust jadi perbincangan di kalangan developer dalam beberapa hari terakhir. Proyek ini memindahkan compiler TypeScript yang sebelumnya ditulis ulang Microsoft dalam Go — lengkap dengan type checker dan language server (LSP) — secara penuh ke Rust, dengan tool command-line bernama tsc-rs. Pengelolanya, pingdotgg, menjelaskan dengan terus terang: seluruh kode implementasi dihasilkan oleh model bahasa besar, dan mereka sendiri belum pernah membaca satu baris pun.

Proyek ini dikunci pada satu versi upstream tertentu dari microsoft/typescript-go, yang setara dengan TypeScript 7.1.0-dev. Menurut dokumentasi proyek, seluruh 181.711 tes yang dipindahkan dari versi Go berhasil lolos, dan tingkat kompatibilitas mencapai 100% pada proyek nyata yang diuji penulisnya. Repositori ini berlisensi MIT, sambil tetap mempertahankan notifikasi Apache-2.0 milik TypeScript dan BSD-3-Clause milik pustaka standar Go, dan saat ini sudah mengumpulkan lebih dari 600 star.

Dua Jalur Model

Penulis awalnya mencoba dengan GPT-5.6 Sol dan GPT-6 Astra dari OpenAI. Upaya ini menghabiskan biaya API lebih dari 400.000 dolar AS, menghasilkan sekitar 1,3 juta baris kode Rust, namun kompatibilitasnya mandek di 84%. Penulis kemudian beralih ke Claude Opus 5.5 dan memulai dari awal, berhasil mendapatkan v0 yang berjalan dalam 10 jam, dengan total biaya sekitar 24.047 dolar AS selama dua minggu.

I've never read a line of this code.

Dari sisi performa, penulis melakukan benchmark menggunakan proyek T3 Code miliknya sendiri: proses type-check lengkap memakan waktu 7,25 detik di tsc-rs, dibandingkan 16,10 detik pada tsc 7 berbasis Go, atau 2,22 kali lebih cepat. Dengan tsc 6 berbasis JavaScript sebagai acuan, tsc 7 lebih cepat 7,1 kali dan tsc-rs lebih cepat 11,4 kali. Semua angka ini berasal dari pengujian penulis sendiri, belum ada reproduksi independen, dan baik OpenAI maupun Anthropic belum memberikan komentar publik atas perbandingan ini.

Dilihat di Antara Proyek Sejenis

Migrasi kode skala besar menggunakan model besar sudah punya beberapa contoh publik tahun ini. GitHub sebelumnya pernah mengungkapkan penggunaan Copilot untuk menulis ulang salah satu runtime miliknya menjadi 830.000 baris Rust; Mistral menggunakan agent untuk memindahkan 40.000 baris Fortran 77 ke C++. Kesamaan dari proyek-proyek ini adalah adanya test suite yang sudah ada dan berjangkauan luas sebagai wasit.

ts-rust mengikuti pola yang sama. Migrasi versi Go milik Microsoft sendiri adalah penulisan ulang gaya 'menyalin apa adanya' file demi file, dan test case-nya ikut dipindahkan bersamaan — memberi model target yang hampir sepenuhnya deterministik: ratusan ribu tes, dan lolos berarti lolos. Pada tugas dengan target yang jelas dan feedback instan seperti ini, selisih antara dua model jadi jauh lebih terlihat. Apakah perbandingan ini masih berlaku untuk kode bisnis dengan kebutuhan yang kabur dan tanpa jaring pengaman tes, masih belum bisa dipastikan.

Kekurangan yang Sudah Diketahui

Dokumentasi menyebutkan empat keterbatasan: dalam monorepo di mana file yang sama bisa diakses lewat beberapa jalur, file output bisa lebih banyak dibanding tsc; pada skenario incremental build dengan tsc -b, bisa jadi membaca artefak yang sudah usang atau hilang; memori bertambah perlahan pada sesi pengeditan yang panjang, sekitar 20MB setiap 1.000 kali edit; dan nomor versi yang ditampilkan masih 7.1.0-dev sesuai saat migrasi dilakukan, bukan versi di npm.

Penulis memposisikan ini sebagai versi awal. Untuk tim yang ingin mencoba, menjalankan tsc-rs bersamaan dengan tsc resmi di CI lalu membandingkan output diagnostiknya adalah cara yang lebih aman; mengganti langsung rantai build produksi dengan ini, tanpa ada yang pernah meninjau kodenya, risikonya harus ditimbang sendiri oleh masing-masing tim.

Sumber: dokumentasi proyek ts-rust, CocoLoop, diskusi Hacker News; jumlah tes, biaya API, dan waktu/kelipatan benchmark T3 Code diverifikasi berdasarkan dokumentasi proyek.