Continuiamo la serie di Hello, World introducendo un linguaggio di programmazione molto giovane ma molto amato: Rust.

Rust è un linguaggio di programmazione compilato (omonimo di un gioco per pc) sviluppato da Mozilla Research, la stessa Mozilla di Firefox.

Supporta diversi paradigmi di programmazione, fra i più noti e usati: object oriented, funzionale, e procedurale. Rust è progettato per essere un linguaggio adatto allo sviluppo di sistemi concorrenti e molto safe. Ad esempio, non è possibile avere null pointers e dangling pointers (puntatori ad aree di memoria non valide).

Non è presente un Garbage Collector: la liberazione della memoria viene gestita usando lo stesso idioma di C++, RAII (Resource allocation is initialization).

 

Il logo di Rust
Il logo di Rust

Sul lato prestazionale Rust raggiunge performance simili al C. Essendo però anche safe sul lato della memoria, Rust può essere utilizzato anche per lo sviluppo di kernel o comunque programmazione di sistema.

Nel sondaggio del 2016 condotto sulla comunity di programmatori di Stack Overflow, Rust è risultato il primo classificato per la domanda “Linguaggio di programmazione più amato”.

Esiste un sito (che ricorda uno simile per il linguaggio Go) chiamato: rustbyexample.com che, nel caso avessimo già esperienza di programmazione in linguaggi differenti, ci permette di conoscere molto velocemente i vari costrutti di Rust.

L’Hello World

Vediamo infine l’Hello World di questo linguaggio:

fn main() {
// Print text to the console
 println!("Hello World!");
}

Salviamolo in un file “helloworld.rs“. Per poterlo compilare avremo bisogno del compilatore di Rust, rustc.

Dopo di che, da linea di comando, compiliamo con:

rustc helloworld.rs

Questo genererà nella stessa directory, un file chiamato helloworld. Per eseguirlo ci basta dire:

./helloworld

Et voilà! Il nostro Hello World in Rust!

La domanda infine è: conviene imparare Rust?

E’ un linguaggio relativamente molto giovane, ma con grandi potenzialità e costrutti interessanti. Sicuramente se non avete esperienza con linguaggi tipo C/C++ potrebbe rivelarsi una valida alternativa.