Topik ini mempelajari transisi Objective-C ke Swift sebagai preseden transisi bahasa penerus yang telah dijalankan paling lengkap, lalu menilai seberapa jauh preseden tersebut dapat digunakan dalam menimbang rencana Carbon. Pembahasan mencakup mekanisme interop dan migrasi Swift, garis waktu kedua transisi, serta kesamaan dan perbedaan konteks yang menentukan keberhasilannya. Setelah membacanya, rencana Carbon dapat dinilai berdasarkan preseden nyata, bukan berdasarkan harapan.
Preseden Objective-C ke Swift#
Swift dirancang sebagai bahasa yang berdampingan dengan Objective-C pada ekosistem yang sama. README proyeknya menyebut Swift sebagai bahasa pemrograman sistem berkinerja tinggi yang memberikan akses mulus ke kode dan framework C serta Objective-C yang ada, sekaligus aman memori secara bawaan, dan menegaskan Swift bukan bahasa turunan C melainkan bahasa lengkap yang berdiri sendiri dengan sistem module yang menghilangkan kebutuhan header. Dua sifat itu, yaitu bahasa baru yang dirancang dari awal dan jembatan penuh ke bahasa lama, merupakan pola yang sama dengan lima syarat bahasa penerus pada README Carbon.
Mekanisme migrasinya juga menyerupai rencana Carbon. Panduan migrasi resmi Apple menyatakan interoperabilitas membuat fitur yang dipindahkan ke Swift dapat disatukan kembali ke kode Objective-C tanpa hambatan, sehingga seluruh aplikasi tidak perlu ditulis ulang sekaligus, dan pendekatan yang paling efektif adalah per berkas, yakni satu kelas pada satu waktu. Garis waktunya terdokumentasi resmi, karena Apple memperkenalkan Swift pada 2014, lalu mengumumkan Swift menjadi open source pada 3 Desember 2015 dengan situs swift.org beserta dokumentasi teknisnya.
Garis waktu dua transisi#
Tempo kedua transisi dapat disandingkan langsung. Diagram berikut menyandingkan garis waktu Objective-C ke Swift dengan garis waktu rencana C++ ke Carbon, lengkap dengan tonggak-tonggak resminya.
Garis Swift menunjukkan bahwa transisi dengan dukungan penuh satu vendor tetap memakan waktu bertahun-tahun, dari perkenalan pada 2014, open source pada 2015, hingga ABI yang dinyatakan stabil untuk Swift 5 pada platform Apple menurut blog resmi swift.org pada awal 2019. Garis Carbon diambil dari peta jalan resminya, yaitu diumumkan pada Juli 2022, target rilis 0.1 paling cepat akhir 2026, target 0.2 pada rentang 2027 sampai 2028, dan target 1.0 setelah 2028. Penyandingan ini menegaskan dua hal sekaligus, yaitu rencana Carbon masih jauh dari tonggak pertamanya, dan preseden Swift memberi contoh bahwa tempo bertahun-tahun memang lazim untuk pekerjaan semacam ini.
Menilai rencana Carbon dengan preseden Swift#
Kesamaan rencananya nyata pada tiga titik, yaitu interop dua arah sebagai kendala hari pertama, migrasi bertahap per berkas atau per library, dan alat migrasi yang disiapkan khusus. Swift membuktikan pola tersebut dapat selesai dengan hasil yang digunakan luas dalam produksi, dan dokumen tujuan Carbon bahkan merujuk model resilience Swift sebagai salah satu pendekatan untuk fasilitas stabilitas yang dirancang khusus, meskipun ABI menyeluruh tetap non-goal Carbon. Preseden ini dengan demikian menguatkan arah desain Carbon dengan contoh yang telah teruji.
Perbedaan konteksnya sama pentingnya, dan tabel berikut menyandingkannya.
| Aspek | Objective-C ke Swift | C++ ke Carbon |
|---|---|---|
| Pemilik ekosistem | satu vendor yang mengendalikan bahasa, SDK, dan perangkatnya | ekosistem terbuka lintas vendor tanpa otoritas pusat |
| Jangkauan bahasa lama | terutama platform Apple | dominan lintas industri dengan standar ISO |
| Mekanisme interop | jembatan pada runtime Objective-C yang tersedia di seluruh perangkat platform | semantik C++ yang harus dipahami kompilator Carbon pada tingkat semantik |
| Jaminan ABI | ABI stabil dicapai untuk Swift 5 pada platform Apple | ABI stabil untuk seluruh bahasa dinyatakan non-goal |
| Tonggak waktu | 2014, open source 2015, ABI stabil 2019 | 2022, target 0.1 akhir 2026 paling cepat, target 0.2 pada 2027 sampai 2028 |
Perbedaan terbesarnya ada pada mekanisme dan skala. Interop Swift dibangun di atas runtime Objective-C yang sudah terpasang di setiap perangkat platform tersebut, sedangkan C++ tidak memiliki satu runtime pusat, sehingga dokumen desain interop Carbon menuntut kompilator Carbon memahami semantik C++ secara menyeluruh, dari template hingga resolusi overload. Skala yang dituju juga berbeda, karena dokumen tujuan Carbon menyebut basis kode C++ dengan ratusan juta baris dan puluhan ribu pengembang aktif, sedangkan transisi Swift bergerak dalam ekosistem yang pemiliknya justru mendorong adopsinya melalui SDK resminya.
Bukti bahwa kasus C++ lebih sulit justru diberikan oleh Swift sendiri. Dokumentasi interop Swift dengan C++ menyatakan fitur tersebut baru muncul pada Swift 5.9, mendukung hanya sebagian fitur bahasa, dan masih berkembang aktif. Artinya, bahasa yang sukses berdampingan dengan Objective-C pun masih menempuh usaha terpisah untuk berdampingan dengan C++, dan usaha serupa itulah yang menjadi syarat mutlak seluruh rencana Carbon.
Ringkasan#
- Swift menerapkan pola yang sama dengan rencana Carbon, yaitu interop dua arah sejak hari pertama, migrasi bertahap per berkas, dan alat migrasi, serta membuktikan pola itu dapat selesai sampai digunakan dalam produksi.
- Garis waktunya menunjukkan lima tahun dari perkenalan 2014 hingga ABI stabil pada Swift 5 dengan dukungan satu vendor, sedangkan Carbon baru menargetkan tonggak evaluasi 0.1 paling cepat akhir 2026.
- Perbedaan konteks menentukan, karena C++ tanpa otoritas pusat, tanpa runtime bersama, dan dengan basis kode ratusan juta baris membuat tempo serta risiko transisi tidak dapat ditransfer dari preseden Swift.
- Fitur interop C++ pada Swift sendiri baru muncul pada Swift 5.9 dan masih berkembang, yang menegaskan kedalaman usaha yang dituntut oleh kasus C++.
Referensi#
- README repositori Swift — Proyek Swift — Menggambarkan Swift sebagai bahasa sistem berkinerja tinggi dengan akses mulus ke kode C dan Objective-C serta aman memori secara bawaan.
- Migrating Your Objective-C Code to Swift — Apple — Panduan resmi migrasi yang menyatakan pendekatan per berkas dan penyatuan kembali fitur Swift ke kode Objective-C.
- Apple Releases Swift as Open Source — Apple — Siaran pers 3 Desember 2015 yang menyatakan Swift menjadi open source dan memperkenalkan swift.org.
- ABI Stability and More — Swift.org — Menyatakan ABI Swift dinyatakan stabil untuk Swift 5 pada platform Apple beserta maknanya bagi aplikasi dan library.
- Mixing Swift and C++ — Swift.org — Mendokumentasikan interop C++ Swift yang baru muncul pada Swift 5.9 dan masih berkembang aktif.
- Roadmap — Proyek Carbon Language — Sumber tonggak garis waktu Carbon, yaitu 0.1 paling cepat akhir 2026, 0.2 pada 2027 sampai 2028, dan 1.0 setelah 2028.
- Goals — Proyek Carbon Language — Menyebut skala basis kode yang dituju Carbon dan merujuk model resilience Swift sebagai inspirasi fasilitas stabilitas.