Sylvestre Ledru začal pracovat na reimplementaci GNU Coreutils v Rustu během pandemie COVID-19 a představil jej minulý týden během vydání FOSDEM v roce 2023. Úsilí zvané uutils je nyní součástí mnoha linuxových distribucí a využívá ho také známá sociální síť prostřednictvím projektu Yocto.
Srovnání jazyků Rust a C++ mají společné vlákno: zdůraznění převahy Rustu nad C++ z hlediska bezpečnosti paměti. Editor RisingWave vysvětluje, proč po odchodu z projektu C++ přepsal svůj nativní Cloud DBMS od nuly do Rustu.
„Rust zajišťuje bezpečnost paměti a vláken v době kompilace zavedením pravidel vlastnictví. Jde nad rámec RAII, mechanismu správy paměti běžně používaného v C++. Má to dvě výhody. První je zřejmý: jakmile kompilátor Rust ověří náš program, nebudeme mít za běhu žádné chyby segmentů ani závodní podmínky, které by vyžadovaly desítky hodin ladění, zejména ve vysoce souběžné kódové základně a ve většině asynchronním režimu. Druhý je jemnější: kompilátor Rust jednoduše omezuje typy selhání, což snižuje těsně vnořené úryvky kódu, které mohou způsobit takové chybné chování. Replikace chyb je výrazně vylepšena použitím deterministického provádění. »
GNU Coreutils je balíček z projektu GNU který obsahuje mnoho základních nástrojů potřebných pro operační systémy typu Unix: cp (kopírování souboru nebo adresáře), mkdir (vytvoření adresáře) atd. Vývojář nabízí reimplementaci v jazyce Rust.
Jeden z cílů: aby byl balíček použitelný na jiných operačních systémech: Windows, macOS, Android, FreeBSD atd. Tento krok oživuje debatu o tom, zda pokračovat v zakládání nových projektů v C a C++, nebo se prostě rozhodnout pro jazyk Rust.
„Jazyk Rust nabízí ve výchozím nastavení záruky zabezpečení, pokud jde o správu paměti. To není případ C a C++, jejichž použití v Mozille je příčinou problémů se zabezpečením paměti,“ zdůrazňuje Sylvestre Ledru.
Bjarne Stroustrup však nesouhlasí s tím, že srovnání mezi Rustem a C++ omezuje pojem zabezpečení softwaru na zabezpečení paměti:
„Neexistuje jediná definice pojmu „zabezpečení“ a můžeme dosáhnout různých typů zabezpečení kombinací stylů programování, podpůrných knihoven a využitím statické analýzy. Bjarne Stroustrup tak naznačuje, že to, co lze z C++ z hlediska softwarového zabezpečení získat, závisí mimo jiné na vývojáři a zejména na znalosti nástrojů, které daný jazyk nabízí, jeho zvládnutí kompilátoru atp.
Inženýři Google, vědomi si toho, jaké možnosti jim C++ nabízí, se pustili do vytvoření ověřovače půjček v tomto jazyce. Je to funkce kompilátoru Rust, která zajišťuje bezpečnost paměti prostřednictvím správy alokace ukazatelů paměti.
tým Google, jehož publikace vyšla ve třetím čtvrtletí předchozího roku, dospěl k závěru že systém podobný C++ se k takovému cvičení nehodí. A do že lze dosáhnout bezpečnosti paměti v C++ s ovládacími prvky během provádění programu. Jinými slovy, právě s pomalým C++ kódem je možné dosáhnout úrovně zabezpečení ekvivalentní úrovni Rust.
Vydání editoru RisingWave přichází ve chvíli, kdy Rust vyniká nad ostatními jazyky, které byly léta prezentovány jako alternativy k C a C++. Ve skutečnosti se linuxové jádro stále více otevírá systémovému programovacímu jazyku Mozilly.