Pendapat yang mungkin tidak populer: TypeScript adalah bahasa terbaik untuk Codex ketika tujuannya adalah pengiriman software nyata, bukan sekadar kode level demo.
Bukan karena TypeScript itu ajaib. Alasannya lebih sederhana: alat coding berbasis AI biasanya bekerja lebih baik di lingkungan yang punya batasan jelas dan sinyal yang kuat. Semakin banyak struktur yang terlihat di dalam codebase, semakin sedikit model harus menebak. Hasilnya, output-nya juga lebih mudah diarahkan ke sesuatu yang benar-benar bisa bertahan di production.
Mengapa TypeScript sangat cocok dengan alat coding AI
Dalam codebase JavaScript yang longgar, model bisa menghasilkan kode yang tampak meyakinkan tetapi diam-diam melanggar asumsi penting. Kodenya mungkin tetap jalan, tetapi itu tidak berarti sesuai dengan arsitektur, menghormati bentuk data, atau bebas dari regresi halus. Dari sinilah sering muncul kode yang terlihat pintar di permukaan, namun mahal untuk dirawat belakangan.
TypeScript mengurangi ambiguitas itu. Type berfungsi seperti kontrak. Interface menjelaskan niat desain. Compiler memberi respons langsung. Refactor besar jadi tidak terlalu buta. Bagi Codex, ini berarti improvisasi yang lebih sedikit dan iterasi yang lebih terarah.
- Kontrak yang eksplisit: function, object, dan API dijelaskan dengan lebih jelas.
- Umpan balik typecheck langsung: model membaik lebih cepat ketika sistem mengembalikan error yang konkret.
- Refactor besar lebih aman: perubahan luas lebih mudah divalidasi di codebase nyata.
- Sinyal arsitektur lebih jelas: type memperlihatkan relasi yang biasanya tersembunyi.
Keunggulan sebenarnya ada pada feedback loop
Workflow paling kuat untuk coding dengan AI sebenarnya masih sederhana: edit, typecheck, lint, test, fix. Siklus ini jauh lebih penting daripada prompt yang terdengar pintar jika targetnya adalah kualitas production. Sistem engineering yang kuat biasanya mengalahkan kreativitas yang terlalu longgar.
Itulah juga sebabnya JavaScript sering memberi AI terlalu banyak ruang untuk berimprovisasi. Tanpa cukup batasan, model akan menutup celah dengan tebakan yang terdengar yakin. Kadang berguna. Kadang justru menimbulkan kerusakan diam-diam yang baru terlihat jauh lebih lambat, saat biaya memperbaikinya lebih tinggi.
TypeScript tidak menghapus kesalahan sepenuhnya, tetapi ia mempersempit ruang pencarian. Ia memberi model batas, koreksi yang lebih cepat, dan peta yang jauh lebih mudah dibaca dari sistem yang sedang diubahnya.
Shipping lebih penting daripada demo
Kalau tujuannya cuma membuat prototype cepat, hampir bahasa apa pun bisa dipakai. Tetapi kalau tujuannya adalah pengiriman berkelanjutan, refactor yang lebih bersih, dan lebih sedikit kegagalan tersembunyi, maka batasan formal yang lebih kuat menjadi keuntungan yang nyata.
Itulah alasan saya terus kembali ke TypeScript untuk AI-assisted development. Ini bukan soal fanatisme bahasa. Ini soal kendali. Lebih sedikit menebak. Lebih sedikit kerusakan diam-diam. Kecepatan engineering yang lebih bisa diandalkan.