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?
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