Rust raggiunge Fedora

 

Il presente articolo, è un adattamento in italiano dell'originale scritto da Sumantro Mukherjee per Fedora Magazine.

 

Cos'è Rust?

Rust è un linguaggio di sistema, le cui istruzioni vengono eseguite in maniera veloce e prevengono (quasi interamente) crash e segfaults. L'intento di questo articolo, è quello di spiegare l'utilità nell'adozione di questo nuovo linguaggio di programmazione, nonostante la presenza di molti altri "concorrenti".

Sicurezza o controllo?

Un diagramma simile a quello qui mostrato è molto comune. Da un lato, abbiamo C e C++, che hanno un maggior controllo nei confronti dell'hardware su cui vengono eseguito. Di conseguenza, essi offrono allo sviluppatore la possibilità di ottimizzare i livelli di performance. Tutto ciò però, non evidenzia un alto livello di sicurezza, in quanto può causare segfaults o bug critici come il famoso Heartbleed.

D'altro canto, esistono linguaggi come Python, Ruby e JavaScript dove il programmatore ha meno possibilità di controllo, ma genera codice meno pericoloso, che non causa segfaults - bug ed eccezioni esistono, ma sono più sicure e più contenute -.

Nel mezzo, è possibile trovare Java e alcuni altri linguaggi, che presentano un amalgama di queste caratteristiche, minimizzando le vulnerabilità pur offrendo un certo grado di controllo sull'hardware.

Rust è, in un certo senso, differente, in quanto non rientra pienamente nello schema illustrato. Esso cerca infatti di offrire sicurezza, senza rinunciare al controllo.

Peculiarità di Rust

Rust è un linguaggio di programmazione di sistema esattamente come C/C++, ma offre allo sviluppatore un preciso e completo controllo sull'allocazione della memoria. Un garbage collector non è richiesto. Ha una runtime minimale e viene eseguito ad un livello molto basso. Il programmatore ha quindi una certa confidenza a riguardo delle performance del codice. Inoltre, chiunque conosca C/C++, può capire e scrivere codice Rust.

Essendo un linguaggio compilato, la velocità è appunto assicurata. Come backend, viene usato LLVM che consente un certo numero di ottimizzazioni, che in termini di performance riescono a far prevalere gli applicativi Rust rispetto a quelli C/C++. Il livello di sicurezza è pari a quello di JavaScript, Ruby e Python, in quanto il linguaggio non ammette l'esistenza di segfaults e di problemi causati da puntatori.

Un'altra caratteristica importante è l'eliminazione del problema della concorrenzialità dei dati. Al giorno d'oggi, la maggior parte dei computer hanno processori multi-core e molti thread vengono eseguiti in parallelo. Il tutto però, richiede numerosi sforzi da parte dello sviluppatore. Le caratteristiche di Rust consentono di rimuovere la necessità di ricorrere alla programmazione multitasking. Ci sono due concetti chiave che vengono usati per risolvere la concorrenzialità dei dati:

    Ownership (proprietà). Ogni variabile viene spostata in una nuova posizione, senza consentire alle posizioni precedenti di usarla. Ogni dato è posseduto da un solo proprietario
    Borrowing (prestito). Valori posseduti, possono esssere "prestati" per consentire l'utilizzo per un certo periodo di tempo.

Rust in Fedora 24 e 25

Per utilizzare Rust, è sufficiente installare il seguente pacchetto:

# dnf install rust

Viene quindi riportato un programma demo, che è possibile ricopiare per sperimentare il linguaggio. È sufficiente salvare un file "helloworld.rs", con il seguente contenuto:

fn main() {
    println!("Hello, Rust is running on Fedora 25 Alpha!");
}

Per compilare, bisogna usare "rustc". L'eseguibile può quindi essere eseguito come un qualsiasi software:

$ rustc helloworld.rs
$ ./helloworld

Contribuire al testing di Rust

Per installare la più recente versione di testing su Fedora, occorre eseguire il seguente comando:

# dnf --enablerepo=updates-testing --refresh --best install rust

In caso di dubbi, può essere utile contattare il Fedora Quality Assurance, via mail (test@lists.fedoraproject.org) o via IRC (#fedora-qa su Freenode).

Ultime News: