- Mimpi tentang satu C++ tunggal tanpa dialek tampaknya sudah lama sirna
- Ada banyak perdebatan tentang masa depan C++ di Reddit, situs web berwarna oranye itu (HN), dan juga dalam rapat resmi komite standar C++
Keadaan C++ Saat Ini
- Evolution Working Group (EWG) C++ sepakat untuk mengadopsi P3466 R0.
- Menjaga kompatibilitas penautan dengan C dan C++ lama tanpa memutus ABI (Application Binary Interface).
- Tidak menggunakan 'viral annotations'.
- Tetap mempertahankan tujuan yang saling bertentangan: tidak memutus ABI dan prinsip zero-overhead.
- Pemerintah AS merekomendasikan untuk berhenti menggunakan C++.
- Berbagai lembaga seperti CISA, NSA, dan Gedung Putih telah mengeluarkan peringatan tentang penggunaan bahasa yang tidak aman terhadap memori.
- Perusahaan teknologi besar sedang mengadopsi Rust.
- Microsoft, Google, dan AWS menggunakan Rust.
- Google bahkan mengembangkan alat interoperabilitas C++/Rust
- Konflik internal di dalam komunitas C++
- Ada kabar bahwa Herb Sutter meninggalkan Microsoft dan MSVC lambat dalam mengimplementasikan fitur C++23.
- Google mengurangi partisipasinya dalam proses pengembangan C++ dan sedang mengembangkan bahasa penerus C++ versinya sendiri.
- Kurangnya kepercayaan terhadap proses komite standar C++ yang ada
- Fitur modules masih belum selesai
- 'Safety Profiles'(‘Safety Profiles’) berada dalam situasi yang aneh
Dua Kultur C++
- Kelompok yang menggunakan alat modern dan otomatis
- Perusahaan teknologi besar seperti Google adalah contoh utamanya
- Menggunakan standar C++ terbaru (C++17 ke atas), dengan dukungan alat build dan pengujian otomatis
- Berinvestasi untuk menjaga kualitas kode dan terus memodernisasi codebase
- Kelompok C++ legacy
- Codebase yang berjalan di lingkungan dan alat lama
- Beroperasi tanpa source code atau dengan sistem build yang usang
- Biaya pemeliharaan tinggi dan hambatan modernisasi besar
- Perbedaan utama ada pada alat dan proses
- Kelompok C++ modern bergantung pada sistem build terintegrasi dan alat seperti static analyzer, formatter, linter, dan lainnya
- Kelompok legacy memiliki efisiensi operasional yang rendah karena tidak adanya alat dan proses semacam itu
Hasil dan Dampaknya
- Safety Profiles
- Bertujuan meningkatkan keamanan tanpa mengubah kode legacy yang sudah ada
- Lebih berfokus pada pemeliharaan kode lama daripada kebutuhan C++ modern
- Modules
- Dirancang agar header file bisa dibawa masuk ke modules dengan sederhana
- Dirancang dengan mempertimbangkan kompatibilitas dengan kode legacy
- Perpecahan komunitas C++
- Konflik dalam komunitas makin dalam karena ketidaksesuaian kebutuhan antara kelompok modern dan legacy
- Pendekatan konservatif komite standar C++ tampak sebagai upaya untuk meredakan konflik tersebut
Sudut Pandang Alternatif
- Gagasan alternatif seperti Safe C++ tidak disambut baik di dalam komunitas
- Ada kritik bahwa sebagian anggota komite standar bersikeras mempertahankan standar estetika pribadi dan menolak perubahan
3 komentar
Rust masih belum punya ekosistem pengembangan GUI, jadi saya belum bisa mengadopsinya.
Semoga ada framework GUI yang bagus untuk Rust...
Saya tidak yakin apakah Rust bisa menggantikan C++,
tetapi memang benar bahwa proyek C++ baru hampir tidak terlihat...
Tampaknya komite C++ memutuskan bahwa arah yang tepat adalah lebih mengutamakan nilai aslinya daripada bertransformasi.
Opini Hacker News
Kode C++ Google sering kali tidak berjalan pada versi terbaru, dan para pengembang kerap tidak berminat memperbaikinya. Ini karena kode Google berada di titik tengah antara yang lama dan yang modern
Menyarankan para penggarap standar C++ untuk mendukung arah C++ saat ini dan mengabaikan kebisingan online tentang masa depan C++
Mengklaim satu-satunya kelompok yang masih memakai C++ adalah mereka yang memiliki codebase legacy terlalu besar untuk direfaktor
Menilai sistem edition di Rust bekerja sangat baik
Khawatir kabar Herb Sutter meninggalkan Microsoft akan berdampak buruk bagi Microsoft
std::span, usulan dari Microsoft, diadopsi tanpa pemeriksaan batas, dan berpendapat upaya Herb sangat dibutuhkanMenekankan bahwa pengujian otomatis adalah faktor utama yang membedakan kedua kubu
Mengklaim faktor utama yang menurunkan daya tarik C++ adalah ketiadaan modul
Membandingkan bahwa Herb Sutter mahir menghasilkan kompromi, sedangkan Google mendorong agendanya sendiri
Menyebut pelanggan dengan codebase besar bahkan tidak ingin mengubah 1% pun dari kodenya demi memenuhi aturan yang ketat
Menjelaskan bahwa Python dan Javascript/Node/Typescript juga memiliki beberapa kubu