Status yang Jujur

Membaca pernyataan status Carbon apa adanya, yaitu eksperimental dan belum siap dipakai.

Daftar isi

Topik ini membahas cara membaca pernyataan status resmi proyek Carbon apa adanya. Bahasannya meliputi kalimat-kalimat status yang paling penting pada dokumen resmi, peta jalan (roadmap) beserta target waktunya, dan bukti status eksperimental yang terlihat langsung pada alat yang dapat dicoba. Setelah membacanya, ekspektasi terhadap Carbon dapat disesuaikan dengan fakta yang ada, termasuk keputusan tentang untuk apa Carbon layak dipakai pada saat ini.

Dua pernyataan yang paling penting#

Judul repositori resmi Carbon dibaca persis sebagai berikut.

Carbon Language: An experimental successor to C++

Kata experimental melekat pada identitas proyek itu sendiri, bukan pada catatan kaki di ujung halaman. Bagian Project status pada README yang sama menegaskan kalimat berikut, dan bagian pembuka README menambahkan peringatan yang tidak berbunga-busa, yaitu “Note that Carbon is not ready for use.”

Carbon Language is currently an experimental project.

Kata eksperimental di sini memiliki makna yang spesifik. Proyek ini adalah eksperimen untuk menjawab dua hal yang disebut README, yaitu apakah bahasa yang memenuhi kriteria bahasa penerus benar-benar dapat dibangun, dan apakah bahasa tersebut menarik minat yang cukup besar di industri serta komunitas C++. Kedua jawaban itu belum ada, sehingga seluruh keputusan desain masih dapat berubah. Dokumen FAQ bahkan memberi perkiraan kasar rentang waktunya dengan kalimat “Carbon is still years away”, yang berarti Carbon masih berjarak bertahun-tahun bahkan bila eksperimennya berhasil.

Konsekuensi praktisnya nyata. Carbon belum layak dipakai untuk sistem produksi, dan kode yang ditulis hari ini tidak dijamin tetap berjalan pada versi berikutnya. Kegiatan yang sesuai dengan status ini adalah belajar, mencoba, dan menilai arah desainnya, sedangkan kegiatan yang belum sesuai adalah menaruh beban kerja nyata di atasnya.

Membaca peta jalan tanpa berlebihan#

Peta jalan resmi pada dokumen docs/project/roadmap.md menetapkan tiga tonggak jangka panjang dengan nomor versi. Tabel berikut merangkum targetnya beserta makna masing-masing.

TonggakTarget waktuIsi pokok
0.1paling cepat akhir 2026bahasa MVP (minimum viable product) untuk evaluasi secara serius
0.22027-2028bahasa yang lengkap fitur (feature complete) dengan toolchain self-hosting
1.0setelah 2028bahasa produksi yang bukan lagi eksperimen

Pembacaan yang jujur memperhatikan dua hal pada dokumen yang sama. Pertama, setiap tonggak di luar tahun berjalan diberi label potensial (potential), dan peta jalan menyatakan terus terang bahwa target jangka panjang sulit dipastikan serta selalu dapat berubah. Kedua, tonggak 0.1 pernah digeser setidaknya setahun karena desain keamanan memori ditambahkan ke dalam lingkupnya, sehingga akhir 2026 kini disebut sebagai waktu tercepat yang realistis. Penyesuaian semacam ini adalah bagian normal dari sebuah eksperimen, dan mengharapkan kepastian jadwal justru bertentangan dengan status eksperimentalnya.

Peta jalan juga memperlihatkan apa yang sedang diprioritaskan. Sasaran tahunan yang tercantum menempatkan demo interop C++ dan desain keamanan memori sebagai dua area fokus utama, dan keduanya dipandang sebagai prasyarat menuju tonggak 0.1. Bagi pembaca, urutan prioritas seperti ini lebih berguna daripada angka tahunnya, karena menjelaskan pekerjaan mana yang sedang dikerjakan sebelum bahasa itu dapat dievaluasi secara serius.

Status yang terlihat pada alat#

Status yang jujur tidak berhenti pada dokumen, tetapi terlihat pada alat yang dapat dicoba hari ini. README mempersilakan siapa pun mencoba kondisi terkini Carbon melalui compiler-explorer.com. Di sisi lain, implementasi yang berjalan di sana masih menafsirkan bagian yang jauh lebih kecil daripada desain yang tertulis. Program berikut mendeklarasikan variabel bertipe f64, yaitu tipe bilangan pecahan yang tercantum dalam rencana library pada tonggak 0.1, lalu menunjukkan jawaban Explorer atasnya.

carbon Contoh: variabel bertipe f64
package sample api;

fn Main() -> i32 {
  var suhu: f64 = 36.5;
  Print("Suhu: {0}", suhu);
  return 0;
}
text Keluaran
SYNTAX ERROR: <source>:4: Only i32 is supported for now: f64

Pesan error di atas diperoleh dari eksekusi nyata dan berisi keterangannya sendiri, yaitu “Only i32 is supported for now”, yang berarti bilangan selain i32 belum didukung. Fakta ini bukan kontradiksi dengan dokumen desain, melainkan jarak yang wajar antara desain yang sedang ditulis dan implementasi yang baru mencakup sebagiannya. Membaca status secara jujur berarti menerima keduanya sekaligus, yakni dokumen desain yang luas dan alat yang masih sempit. Untuk eksperimen di Compiler Explorer, program yang hanya bertipe i32, bool, dan String adalah wilayah yang aman.

Dengan penyesuaian ekspektasi tersebut, setiap pernyataan tentang Carbon dapat dinilai pada tempatnya. Kalimat yang menyebut Carbon siap dipakai bertentangan dengan README, sedangkan kalimat yang menyebut Carbon tidak berguna bertentangan dengan tujuan eksperimennya. Posisi yang akurat ada di antara keduanya, yaitu eksperimen desain bahasa yang serius, terbuka, dan dapat dicoba, tetapi belum memberikan jaminan apa pun kepada pemakainya.

Ringkasan#

  • README menyatakan Carbon eksperimental dan belum siap dipakai, dan kedua kalimat itu merupakan sumber status yang paling otoritatif.
  • Peta jalan menargetkan 0.1 paling cepat akhir 2026, 0.2 pada 2027-2028, dan 1.0 setelah 2028, semuanya berlabel potensial dan pernah digeser.
  • Implementasi Explorer hari ini lebih sempit daripada desainnya, misalnya hanya mendukung i32 untuk bilangan, sehingga f64 ditolak.
  • Pemakaian yang sesuai status saat ini adalah eksperimen dan evaluasi di peramban, bukan sistem produksi.

Referensi#