Sylvestre Ledru je počeo raditi na ponovnoj implementaciji GNU Coreutilsa u Rustu tokom pandemije COVID-19 i predstavio ga prošle sedmice tokom izdanja FOSDEM-a 2023. Napor koji se zove uutils sada je upakovan u mnoge Linux distribucije, a koristi ga i poznata društvena mreža kroz Yocto projekat.
Poređenja Rust i C++ jezika imaju zajedničku nit: naglašavanje Rustove superiornosti nad C++ u smislu sigurnosti memorije. Urednik RisingWave objašnjava zašto je prepravio svoj izvorni Cloud DBMS od nule u Rustu nakon što je napustio C++ projekat.
“Rust osigurava sigurnost memorije i niti u vrijeme kompajliranja uvođenjem pravila o vlasništvu. Nadilazi RAII, mehanizam za upravljanje memorijom koji se obično koristi u C++. Ima dvije prednosti. Prvi je očigledan: kada Rust kompajler potvrdi naš program, nećemo imati bilo kakve greške u segmentu ili uslove trke u toku izvođenja, što bi zahtevalo desetine sati otklanjanja grešaka, posebno u visoko konkurentnoj bazi koda i uglavnom asinhronoj. Drugi je suptilniji: Rustov kompajler jednostavno ograničava tipove grešaka, što smanjuje čvrsto ugniježđene isječke koda koji mogu uzrokovati takvo pogrešno ponašanje. Replikacija greške je značajno poboljšana upotrebom determinističkog izvršenja. »
GNU Coreutils je paket iz GNU projekta koji sadrži mnoge osnovne alate potrebne za operativne sisteme slične Unixu: cp (kopiraj datoteku ili direktorij), mkdir (kreiraj direktorij) itd. Programer nudi reimplementaciju na Rust jeziku.
Jedan od ciljeva: učiniti paket upotrebljivim na drugim operativnim sistemima: Windows, macOS, Android, FreeBSD, itd. Ovaj potez dolazi da oživi debatu o pitanju da li nastaviti sa pokretanjem novih projekata u C i C++ ili se jednostavno odlučiti za Rust jezik.
„Rust jezik podrazumevano nudi sigurnosne garancije kada je u pitanju upravljanje memorijom. To nije slučaj sa C i C++, čija je upotreba u Mozili uzrok problema sa sigurnošću memorije”, naglašava Sylvestre Ledru.
Međutim, Bjarne Stroustrup se ne slaže da poređenja između Rusta i C++ ograničavaju pojam osiguranja softvera na osiguranje memorije:
„Ne postoji jedinstvena definicija pojma 'sigurnosti' i možemo postići različite vrste sigurnosti kombinacijom stilova programiranja, biblioteka podrške i korištenjem statičke analize. Bjarne Stroustrup stoga sugerira da ono što se može dobiti od C++-a u smislu sigurnosti softvera ovisi, između ostalog, od programera i, posebno, od poznavanja alata koje jezik nudi, njegovog vladanja kompajlerom itd.
Google inženjeri, svjesni šta im C++ nudi kao mogućnosti, krenuli su u kreiranje verifikatora kredita na ovom jeziku. To je karakteristika Rust kompajlera koja osigurava sigurnost memorije kroz upravljanje dodjelom memorijskog pokazivača.
Google tim, čija je publikacija izašla u trećem kvartalu prethodne godine, došao do zaključka o da sistem sličan C++-u nije pogodan za takvu vježbu. I to da se sigurnost memorije u C++-u može postići sa kontrolama tokom izvršavanja programa. Drugim riječima, sa sporim C++ kodom moguće je postići nivo sigurnosti koji je ekvivalentan Rust-ovom.
Izdanje RisingWave editora dolazi pošto se Rust izdvaja od drugih jezika koji su godinama predstavljani kao alternative C i C++. U stvari, Linux kernel postaje sve otvoreniji za Mozilla sistemski programski jezik.