Diskusi terbaru tentang implementasi algoritma kompresi dalam Ada telah memicu perdebatan komunitas yang penuh gairah mengenai mengapa bahasa pemrograman yang dulunya menjanjikan ini gagal mencapai adopsi mainstream, meskipun memiliki keunggulan teknis dan terus digunakan dalam sistem-sistem kritis.
Percakapan dimulai dengan ekspektasi detail implementasi teknis namun dengan cepat berkembang menjadi pemeriksaan yang lebih luas tentang sejarah Ada dan relevansinya saat ini. Anggota komunitas mendapati diri mereka terbagi antara mereka yang memandang Ada sebagai bahasa yang gagal dan yang lain yang berargumen bahwa bahasa ini berhasil dengan cemerlang di domain yang dituju.
Perdebatan Kegagalan Besar
Poin paling kontroversial berpusat pada apakah Ada benar-benar gagal sama sekali. Para kritikus menunjuk pada adopsinya yang terbatas di luar domain khusus, dengan salah satu anggota komunitas mencatat bahwa mereka akan merasa menulis aplikasi Ada di tahun 2025 agak anakronistik. Namun, para pembela dengan cepat melawan narasi ini, menyoroti kesuksesan berkelanjutan Ada di bidang aerospace, pertahanan, dan sistem mission-critical di mana keandalan mengalahkan popularitas.
Rekam jejak bahasa ini berbicara banyak tentang kesuksesan khususnya. Ada menggerakkan sistem dalam avionik Airbus , International Space Station , dan berbagai aplikasi militer termasuk sistem pertahanan Phalanx dan jet tempur F-15 / F-16 . Ini bukanlah resume dari teknologi yang gagal, melainkan teknologi yang menemukan ceruknya di lingkungan berisiko tinggi di mana bug perangkat lunak dapat berarti perbedaan antara hidup dan mati.
Aplikasi Ada Saat Ini:
- Aerospace: Sistem avionik Airbus , International Space Station
- Pertahanan: Sistem pertahanan Phalanx , jet tempur F-15 / F-16
- Otomotif: Pengembangan kendaraan self-driving Nvidia
- Kepatuhan Standar: DO-178C (aerospace), ISO 26262 (otomotif)
- Sertifikasi: Rust memiliki kompiler berkualifikasi ISO 26262 , Ada memiliki ekosistem sertifikasi yang lebih luas
Mandat Department of Defense yang Berbalik Arah
Sebagian besar perjuangan mainstream Ada dapat ditelusuri kembali ke mandat pemerintah yang berniat baik namun pada akhirnya kontraproduktif. Pada tahun 1980-an, U.S. Department of Defense mewajibkan Ada untuk proyek perangkat lunak militer, berharap untuk menstandarisasi pengembangan di seluruh kontraktor pertahanan. Alih-alih mendorong adopsi, mandat ini menciptakan kebencian di antara programmer yang merasa bahasa tersebut dipaksakan kepada mereka.
Perlawanan begitu kuat sehingga kontraktor secara rutin mencari pengecualian untuk menggunakan bahasa lain, merusak seluruh upaya standardisasi. Pada tahun 1997, DoD meninggalkan mandat tersebut, mengakui bahwa adopsi paksa telah berbalik arah secara spektakuler. Kerusakan pada reputasi Ada , bagaimanapun, terbukti bertahan lama.
Linimasa Bahasa Ada dan Fakta-Fakta Kunci:
- 1980: Ada pertama kali diperkenalkan oleh Departemen Pertahanan Amerika Serikat
- 1983: Menjadi standar militer dengan adopsi wajib
- 1997: DoD meninggalkan mandat Ada karena perlawanan yang meluas
- 2002: Kompiler GNU Ada diintegrasikan ke dalam GCC
- 2012: SPARK 2012 memperkenalkan integrasi yang lebih baik dan verifikasi formal
- 2014: SPARK 2014 menambahkan kemampuan pembuktian matematis
Relevansi Modern dan Aplikasi Safety-Critical
Meskipun mengalami perjuangan di masa lalu, Ada mengalami minat yang diperbarui dalam aplikasi safety-critical. Perusahaan seperti Nvidia menggunakan Ada dan SPARK untuk pengembangan kendaraan self-driving, mengakui kemampuan verifikasi formal bahasa tersebut. Sistem pembuktian matematis SPARK 2014 dapat memverifikasi ketiadaan error runtime, membuatnya sangat berharga untuk aplikasi di mana keselamatan manusia adalah yang utama.
Untuk perangkat lunak otomasi safety-critical saya untuk mesin yang akan beroperasi di sekitar orang dan di atas kepala, saya memilih Ada / SPARK2014 . Rekam jejaknya yang telah berlangsung puluhan tahun di domain integritas tinggi seperti aerospace, pertahanan, dan sistem medis memastikan keandalan untuk aplikasi di mana keselamatan manusia adalah yang utama.
Sintaks terstruktur bahasa ini dan fitur keamanan bawaan membuatnya sangat menarik untuk sistem embedded dan aplikasi yang memerlukan sertifikasi di bawah standar seperti DO-178C dan ISO 26262 .
Perbandingan dengan Rust
Subplot menarik muncul membandingkan Ada dengan Rust , bahasa pemrograman sistem Mozilla yang menekankan keamanan memori. Meskipun kedua bahasa memprioritaskan keamanan, mereka mengambil pendekatan yang berbeda. Ada melakukan lebih banyak pemeriksaan runtime dan telah ada lebih lama dengan tooling yang matang, sementara Rust fokus pada jaminan compile-time dan telah memperoleh momentum signifikan dalam beberapa tahun terakhir.
Diskusi mengungkapkan bahwa alat verifikasi formal Ada lebih matang dan siap produksi dibandingkan dengan ekosistem verifikasi formal Rust yang sedang berkembang. Namun, Rust mendapat manfaat dari desain bahasa modern dan komunitas developer yang berkembang yang tidak dimiliki Ada .
Perbandingan Ada vs. Rust:
- Keunggulan Ada: Alat verifikasi formal yang matang, rekam jejak puluhan tahun dalam sistem safety-critical, proses sertifikasi yang telah mapan
- Keunggulan Rust: Desain bahasa yang modern, komunitas developer yang berkembang, jaminan keamanan memori pada waktu kompilasi
- Pendekatan Runtime: Ada melakukan lebih banyak pemeriksaan runtime, Rust menekankan jaminan pada waktu kompilasi
- Ekosistem: Ada memiliki perangkat khusus namun terbatas, Rust memiliki ekosistem pengembangan modern yang lebih luas
Kesimpulan
Perdebatan Ada mengungkapkan ketegangan fundamental dalam adopsi bahasa pemrograman antara keunggulan teknis dan kekuatan pasar. Meskipun Ada mungkin tidak akan pernah mencapai popularitas C++ atau Python , evolusi berkelanjutan dan aplikasi khususnya menunjukkan bahwa laporan tentang kematiannya telah sangat dibesar-besarkan. Di domain di mana kegagalan perangkat lunak bukan hanya tidak nyaman tetapi berpotensi katastrofik, penekanan Ada pada kebenaran dan keamanan terus menemukan pengguna yang berdedikasi yang menghargai keandalan daripada tren.
Referensi: Writing a competitive blog post/article in 45min from keyword research to a finished draft