Rust vs. Ada
(reddit.com)Ini adalah komentar perbandingan Rust dan Ada yang ditemukan di r/ada di Reddit.
-
Kedua bahasa sama-sama memiliki keuntungan karena bukan C. Misalnya, terhindar dari berbagai foot guns sintaks C dan undefined behavior.
-
Kedua bahasa sama-sama mendukung memory safety. Batas array diperiksa saat runtime, begitu juga aturan untuk memastikan pointer valid, dan sebagainya. Pemeriksaan di Ada sedikit lebih sederhana, dan ada
Unchecked_Accessyang dapat melewati semuanya. Borrow checker Rust lebih canggih, tetapi bahkan ketika perlu melewatinya, hal itu tidak mudah dilakukan. -
Rust menerima alokasi dinamis. Ini juga bisa dilakukan di Ada, tetapi terasa canggung dan tidak nyaman. Jelas bahwa bahasa Ada memang tidak menginginkannya. Ada berasal dari era ketika alokasi heap dianggap bermasalah bagi keamanan, fragmentasi memori dikhawatirkan, dan orang harus membuktikan bahwa memori tidak akan habis. Rust mendorong penggunaan heap secara bebas, dan jika alokasi dinamis diperlukan, Rust jelas lebih aman. Di Ada, dealokasi adalah operasi yang tidak aman karena dapat meninggalkan dangling pointer.
-
Rust lebih unggul dalam thread safety. Borrow checker mencegah race condition sejak awal.
-
Ada lebih unggul dalam value safety. Constrained subtype adalah alat yang baik untuk menulis kode yang benar, dan menjadi dasar bagi fitur-fitur Ada lainnya seperti pemeriksaan array.
-
Ada lebih unggul dalam bidang formal proof dengan menggunakan SPARK. Saya tidak menemukan hal seperti ini di Rust. Jika keselamatan tingkat tinggi adalah keharusan, SPARK adalah alat yang paling tepat.
2 komentar
Karena ditulis lewat ponsel, jadi ada typo ya T_T
memory sadety -> seharusnya memory safety.
burrow checker -> borrow checker
thread safery -> thread safety
:D