Sylvestre Ledru mula mengusahakan pelaksanaan semula GNU Coreutils dalam Rust semasa pandemik COVID-19 dan membentangkannya minggu lepas semasa FOSDEM edisi 2023. Usaha yang dipanggil uutils kini dibungkus oleh banyak pengedaran Linux dan juga digunakan oleh rangkaian sosial terkenal melalui projek Yocto.
Perbandingan bahasa Rust dan C++ mempunyai rentetan yang sama: menonjolkan keunggulan Rust berbanding C++ dari segi keselamatan ingatan. Editor RisingWave menerangkan mengapa dia menulis semula Cloud DBMS asalnya dari awal di Rust selepas meninggalkan projek C++.
“Karat memastikan ingatan dan keselamatan benang pada masa penyusunan dengan memperkenalkan peraturan pemilikan. Ia melangkaui RAII, mekanisme pengurusan memori yang biasa digunakan dalam C++. Ia mempunyai dua kelebihan. Yang pertama adalah jelas: sebaik sahaja pengkompil Rust mengesahkan program kami, kami tidak akan mempunyai sebarang ralat segmen atau keadaan perlumbaan pada masa larian, yang memerlukan berpuluh-puluh jam penyahpepijatan, terutamanya dalam pangkalan kod yang sangat serentak dan kebanyakannya tidak segerak. Yang kedua adalah lebih halus: Pengkompil Rust hanya mengekang jenis kegagalan, yang mengurangkan coretan kod bersarang ketat yang boleh menyebabkan tingkah laku rosak sedemikian. Replikasi ralat dipertingkatkan dengan ketara dengan menggunakan pelaksanaan deterministik. »
GNU Coreutils ialah pakej daripada projek GNU yang mengandungi banyak alat asas yang diperlukan untuk sistem pengendalian seperti Unix: cp (menyalin fail atau direktori), mkdir (membuat direktori), dsb. Pembangun menawarkan pelaksanaan semula dalam bahasa Rust.
Salah satu matlamat: untuk menjadikan pakej boleh digunakan pada sistem pengendalian lain: Windows, macOS, Android, FreeBSD, dsb. Langkah itu datang untuk menghidupkan semula perdebatan mengenai persoalan sama ada untuk meneruskan memulakan projek baharu dalam C dan C++ atau hanya memilih bahasa Rust.
“Bahasa Rust menawarkan jaminan keselamatan secara lalai apabila ia berkaitan dengan pengurusan memori. Ini bukan kes C dan C++, yang penggunaannya dalam Mozilla adalah punca masalah keselamatan memori”, tegas Sylvestre Ledru.
Walau bagaimanapun, Bjarne Stroustrup tidak bersetuju bahawa perbandingan antara Rust dan C++ mengehadkan tanggapan mengamankan perisian kepada mengamankan ingatan:
“Tiada definisi tunggal tentang pengertian 'keselamatan' dan kami boleh mencapai pelbagai jenis keselamatan melalui gabungan gaya pengaturcaraan, perpustakaan sokongan dan dengan memanfaatkan analisis statik. Oleh itu, Bjarne Stroustrup mencadangkan bahawa apa yang boleh diperoleh daripada C++ dari segi keselamatan perisian bergantung, antara lain, pada pembangun dan, khususnya, pada pengetahuan tentang alat yang ditawarkan oleh bahasa itu, penguasaannya terhadap pengkompil, dsb.
Jurutera Google, menyedari kemungkinan yang ditawarkan oleh C++ kepada mereka, telah memulakan penciptaan pengesah pinjaman dalam bahasa ini. Ia adalah ciri pengkompil Rust yang memastikan keselamatan memori melalui pengurusan peruntukan penunjuk memori.
pasukan Google, yang penerbitannya muncul pada suku ketiga tahun sebelumnya, sampai ke kesimpulan bahawa sistem seperti C++ tidak sesuai dengan latihan sedemikian. Dan kepada bahawa keselamatan ingatan dalam C++ boleh dicapai dengan kawalan semasa pelaksanaan program. Dalam kata lain, ia adalah dengan kod C++ yang perlahan bahawa adalah mungkin untuk mencapai tahap keselamatan yang setara dengan Rust.
Keluaran editor RisingWave datang kerana Rust menonjol daripada bahasa lain yang telah dibentangkan selama bertahun-tahun sebagai alternatif kepada C dan C++. Malah, kernel Linux semakin terbuka kepada bahasa pengaturcaraan sistem Mozilla.