Memilih Stack Anda: Sekilas Tentang Bahasa Pemrograman
Ketika Anda mengarahkan AI untuk membangun perangkat lunak, bahasa pemrograman yang Anda pilih tetap sangat berpengaruh. AI yang menulis kodenya, tapi Andalah yang menanggung akibatnya: seberapa cepat Anda merilis produk, seberapa mudah proses deploy-nya, dan seberapa sering Anda menabrak tembok. Kabar baiknya, Anda tidak perlu menguasai bahasa-bahasa ini secara mendalam. Anda hanya perlu tahu cukup banyak untuk membuat pilihan yang masuk akal dan mengenali saat AI mengarahkan Anda ke jalan yang menyakitkan.
Bab ini akan membahas bahasa-bahasa pemrograman yang layak Anda perhatikan, apa yang benar-benar menjadi kelebihannya, di mana letak kelemahannya, dan — yang paling penting untuk vibe coding — seberapa baik asisten AI menanganinya. Kita akan mengakhirinya dengan panduan super sederhana untuk memilih berdasarkan tujuan Anda.
Satu catatan sebelum kita mulai: asisten AI jauh lebih baik dalam bahasa-bahasa populer yang memiliki gunungan kode publik dibanding bahasa-bahasa yang jarang dipakai (niche). Ini bukan efek kecil. Ini sering kali menjadi satu faktor terbesar yang menentukan apakah proyek Anda berjalan lancar atau tidak. Popularitas adalah sebuah fitur. Ketika sebuah bahasa dan utamanya muncul jutaan kali di repositori publik, AI telah melihat setiap pola umum, setiap kesalahan yang khas, dan setiap perbaikan yang idiomatis. Ketika tidak, Anda membayar kelangkaan itu dengan percobaan yang gagal dan omong kosong yang terdengar meyakinkan.
Sebelum masuk ke nama-nama bahasa, ada satu gambaran yang perlu Anda simpan dalam benak: kode yang Anda tulis bukanlah apa yang sebenarnya dijalankan mesin. ada sesuatu di tengah yang mengubah teks Anda menjadi perangkat lunak yang berjalan — entah compiler (menerjemahkan semuanya lebih dulu menjadi sebuah berkas yang Anda jalankan) atau interpreter (membaca dan menjalankannya baris demi baris). Bahasa yang Anda pilih menentukan jalur mana yang Anda tempuh.
YOU THE MIDDLE THE MACHINE
┌────────┐ ┌──────────┐
│ source │──┬──▶ COMPILER ──▶ binary file ──────▶ │ runs on │
│ code │ │ (Go, Rust) (one file) │ CPU │
│ (text) │ │ │ │
└────────┘ └──▶ INTERPRETER ──reads line ──────▶ │ prints │
(Python, JS) by line │ output │
└──────────┘
compiled = translate first, run later
interpreted = translate while running
