Questa è una breve guida introduttiva al linguaggio Rust. Scopriremo cos’è, i suoi vantaggi e come installarlo e usarlo.
Rust è un linguaggio di programmazione di medio livello, molto vicino al linguaggio macchina. A motivo delle sue caratteristiche è più veloce e performante di Python e Java, essendo un linguaggio che viene compilato in binario ed è anche più sicuro e moderno di C/C++.
Rust risulta ottimo per creare programmi che funzionano su terminale (CLI), server, sistemi integrati e per lo sviluppo di software che richiedono alte prestazioni. Attualmente è meno indicato per i sistemi operativi che sono tuttora sviluppati con C/C++.
Caratteristiche di Rust
Rust ha diverse caratteristiche uniche che lo rendono un linguaggio molto sicuro. Si tratta dell’ownership, il quale rappresenta il proprietario di un valore conservato in memoria, e il borrowing, la capacità di riferirsi ad un valore in memoria ma senza possederlo.
Nei linguaggi di programmazione ogni valore è rappresentato da una variabile, un’etichetta che diamo al tipo di dato. In Rust soltanto una variabile alla volta può contenere un tipo di dato complesso, quindi non parliamo di stringhe letterali. Se creiamo una nuova variabile con lo stesso valore, automaticamente la prima viene eliminata in runtime. Esaminiamo questo codice:
fn main() {
let s1 = String::from("Hello");
let s2 = s1;
println!("s1:{},s2:{}",s1,s2);
}
Se lo scrivessimo sull’editor di anteprima del sito di Rust e lo eseguissimo riceveremo un errore che in breve spiega che il tipo String non implementa la Copy, per evitare duplicazione dello stesso valore, e che di conseguenza il valore di s1 viene passato a s2 e non esiste più quando chiamiamo la stampa. Vedremo queste caratteristiche in un articolo specifico.
Proprio per l’efficienza e la sicurezza, Rust è un linguaggio che richiede di esplicitare il tipo di dato delle variabili, simile a TypeScript. Inoltre, è molto facile creare un progetto, aggiungere librerie e mantenerlo.
Installazione e creazione dei progetti con Cargo
La guida completa per ogni situazione è disponibile sul sito ufficiale. Su Windows basta scaricare l’installer: bisogna sapere se il dispositivo è a 32 bit o a 64 bit. Su Linux c’è un comando da digitare nel terminale che installerà rustup.
Su Windows verrà richiesto di installare tutti i tool necessari per la compilazione da Visual Studio (opzione 2). E’ quella più adatta per avere tutto il necessario su Windows.
Su Linux, al momento della scrittura di questo articolo, il comando da digitare è:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Per verificare che l’installazione è andata a buon fine, digitare il comando:
rustc --version
A questo punto bisogna installare l’esenzione rust-analizer sul proprio IDE. Anche in questo caso la guida provvede l’aiuto per diversi editor. Su Vs Code è disponibile nelle estensioni.
Per creare un progetto basta digitare da terminale all’interno della cartella desiderata il comando cargo new nome per creare un progetto oppure cargo new nome –lib per creare una libreria. A quel punto basta accedere alla cartella del progetto con VS Code digitando il comando code nome.
Cargo è il gestore dei pacchetti e lo strumento di build per Rust, come NPM lo è per Node. Dopo avere creato il progetto troveremo il file Cargo.toml che contiene tutte le informazioni del progetto, i vari settaggi e le dipendenze. Per aggiungere le dipendenze desiderata basta digitare da terminale cargo install nome oppure cargo binstall nome. L’ultimo comando aggiungerà soltanto i file binari delle dipendenze provvedendo meno codice.
Se creiamo un progetto normale, troveremo il codice principale nel file main.rs. Rust-analizer verificherà che tutto è a posto e su VS Code potremo cliccare su Run per fare partire il programma. Negli articoli seguenti scopriremo i tipi di dato supportati da Rust e come scrivere il codice.