← semua berita

AI menulis ulang aplikasinya, tapi tetap butuh orang yang paham

Engineering · · · sumber (itsallaboutthebit.com)

Titik awal esai ini adalah eksperimen DHH: ia menyuruh sebuah AI agent menulis ulang Campfire dari Ruby on Rails ke Rust, lalu ke Elixir dan Go, tanpa ia sendiri membaca kodenya. Argumen penulis, hasil penulisan ulang itu berbeda karena alasan yang tidak ada kaitannya dengan bahasa pemrograman. Kebutuhan yang tidak disebutkan diputuskan secara default. Versi Rust menghapus token CSRF dan mengganti Redis dengan antrean in-process, sedangkan versi Elixir tetap mendekati rancangan aslinya. Kalau Anda tidak menentukan pilihan itu, agent yang memutuskannya untuk Anda, tanpa suara.

Angka-angkanya membuat hal ini terasa konkret. Benchmark yang dikutip banyak orang bersifat closed-loop, yang mengukur throughput mentah tapi bukan perilaku sistem saat pengguna terus berdatangan pada laju tetap. Di bawah beban seperti itu gambarannya berubah. Pada 100 POST request per detik, versi Rust tidak memunculkan error HTTP tapi hanya mengirim sekitar 14% event ke klien, dan memutus koneksi yang tertinggal agar mereka menyambung ulang lalu mengambil data lagi. Versi Elixir mengirim sekitar 60% event tapi timeout pada kira-kira 23% POST tadi, dengan latensi event mencapai hampir 180 detik dan penggunaan memori naik ke 1,8GB. Menaikkan buffer broadcast Rust dari 256 ke 16384 mengangkat pengiriman ke sekitar 90%, tapi mendorong latensi maksimum melewati 130 detik. Ini keputusan soal backpressure dan apa yang dilakukan saat sistem tak sanggup mengimbangi, bukan vonis bahasa mana yang lebih cepat.

Intinya bukan bahwa coding dengan AI gagal, melainkan bahwa penilaian manusia tidak hilang. Anda tetap harus menetapkan batasan, memikirkan bagaimana sistem bisa rusak, memutuskan apa yang dibuang dan apa yang diantrekan, serta menolak menyimpulkan sesuatu hanya dari satu angka benchmark.

Kenapa ini penting

Kalau Anda menyerahkan penulisan ulang ke agent, bagian yang diputuskannya diam-diam, menghapus token keamanan, mengganti antrean, memilih cara bersikap saat beban melebihi kapasitas, justru yang menyakitkan di production. Anda harus menentukannya lalu membaca hasilnya, atau Anda merilis keputusan yang sebenarnya tidak pernah Anda ambil.

Coding Agents