Nový programovací jazyk od Mozzily, Rust, se oficiálně dostal do repozitářů Fedory 24 a 25. Podle tvůrců se jedná o jazyk zaměřený na systémové programování, který běží výjimečně rychle, brání "segmentation faults" a garantuje bezpečnost vícevláknových aplikací [1]. V tomto roce se navíc Rust stal nejmilovanějším jazykem podle ankety na Stack Overflow [2].

Proč Rust?

rust-img

Naskýtá se otázka, na co potřebujeme další programovací jazyk, když už jich teď máme více než dost. Bohužel v segmentu, na který cílí Rust není příliš na výběr. V jazycích jako C a C++ má programátor vysokou míru kontroly nad tím, jak program poběží a bude zacházet s pamětí, toto je ovšem vykoupeno častými a závažnými chybami. Naopak jazyky jako Go nebo Java, které poskytují vyšší bezpečnost aplikací nejsou pro některé účely vhodné kvůli nutnosti garbage collectoru.

Rust se snaží programátorům poskytnout to nejlepší z obou světů: jak vysokou míru kontroly nad během programu, tak záruku bezpečnosti běhu programu v čase kompilace. Toho je docíleno pomocí konceptů půjčování (borrowing) a vlastnictví (ownership) proměnných. Chybná práce s pamětí je tím pádem zjištěna už při kompilaci. Současně Rust poskytuje i koncepty známé z vyšších programovacích jazyků jako pattern matching, algebraické datové typy nebo anonymní funkce.

Správa projektu a závislostí

Projekty napsané v Rustu je možné kompilovat ručně pomocí rustc případně pomocí Makefile, nicméně existuje i pohodlnější varianta pomocí správce závislostí Cargo. Ten lze použít pro vytvoření projektu, stažení závislostí, generování dokumentace nebo i spouštění unit testů. Aktuálně dostupné projekty je možné prohlížet na webu crates.io a jejich dokumentaci na docs.rs.

Instalace ve Fedoře 24 a 25

Návod jak nainstalovat všechny potřebné komponenty a vytvořit projekt lze najít na Fedora Developer Portálu [4].

$ sudo dnf install rust cargo

Vytvoření prvního projektu

Založení projektu je díky Cargo velmi jednoduché. Spuštěním příkazu:

$ cargo new ahoj_svete --bin

se vytvoří nová složka "ahoj_svete" s konfiguračním souborem "Cargo.toml" a zdrojovým kódem ve složce "src". Soubor "main.rs" obsahuje klasický "Hello, World!" program:

fn main() {
    println!("Hello, world!");
}

Program je možné spustit pomocí:

$ cargo run
   Compiling ahoj_svete v0.1.0 (file:///home/user/ahoj_svete)
     Running `target/debug/ahoj_svete`
Hello, world!

Zajímavé projekty a dokumentace

Oficiální dokumentace rovněž obsahuje [online knihu](https://doc.rust-lang.org/book/) a kolekci příkladů, které ilustrují koncepty jazyka v praxi.

Samozřejmostí je také seznam zajímavých projektů na GitHubu,
kde je možné najít například webový engine:

Framework pro vývoj síťových aplikací:

Případně celé operační systémy, jak výukové, tak seriózní pro nasazení na PC, případně mikročipech:

Zdroje:

1. Oficiální webové stránky: https://www.rust-lang.org
2. Anketa: http://stackoverflow.com/research/developer-survey-2016#technology-most-loved-dreaded-and-wanted
3. Obrázek: https://fedoramagazine.org/rust-meets-fedora/
4. Developer Portal: https://developer.fedoraproject.org/tech/languages/rust/rust-installation.html