Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Rust: un'introduzione

Rust: un'introduzione al linguaggio di programmazione e alla sua rivoluzionaria modalità di gestire della memoria
Rust: un'introduzione al linguaggio di programmazione e alla sua rivoluzionaria modalità di gestire della memoria
Link copiato negli appunti

Rust è un linguaggio di programmazione arrivato alla versione 1.0 nel 2015 dopo nove anni di incubazione iniziati da un progetto personale di un ricercatore impiegato nei laboratori di Mozilla. fondazione importantissima nel mondo informatico e particolarmente legata ad Internet.

In questa guida affrontiamo lo studio di Rust esplorandone gli angoli più remoti per imparare a comprenderlo ed utilizzarlo nei nostri progetti. Come spesso succede quando si inizia a studiare un nuovo linguaggio potrebbe capitare di chiedersi: ma perché proprio Rust? È cosi diverso dagli altri? Proprio per questo, nella prima lezione della guida, siamo interessati a mettere in luce i suoi aspetti salienti e innovativi. Per andare alla ricerca del "perché" oggigiorno convenga diventare un programmatore Rust.

Perché imparare a programmare con Rust

Rust è un linguaggio compilato, progettato per scrivere codice sicuro e performante. Fin qui, potrebbe sembrare il tipico slogan di promozione di una tecnologia. In questo caso però l'idea di fondo si basa proprio sul mettere insieme alcuni obiettivi primari dell'Informatica: il controllo totale sulle risorse di basso livello, come la memoria, associato ad una scrittura di codice produttiva per il programmatore e ad un risultato connotato da ottime prestazioni.

L'esito è stata una piattaforma di lavoro efficiente ma anche molto sicura. Tanto da essere impiegata in molti ambiti di estrema attualità tra i quali possiamo segnalare:

  • sviluppo di applicazioni da riga di comando e server
  • scrittura di Web app WebAssembly
  • programmazione in Cloud Amazon Web Services SDK
  • sviluppo di sistemi embedded
  • impiego nell'ambito delle blockchain Substrate

Memory safety

Rust è definito come linguaggio memory safe. Cerca infatti di limitare al massimo gli errori dovuti alla gestione della memoria. Questa è una caratteristica che ha contribuito ad attirare molto interesse su di esso. Non a caso la memory safety rappresenta da sempre una delle tematiche principali della ricerca sui linguaggi informatici. Le violazioni in questo ambito rappresentano la causa di una percentuale molto alta delle vulnerabilità informatiche.
Facciamo un rapido excursus sulla questione. Quando si creano strutture dati viene allocata a questo scopo una certa area di memoria in cui inserire i relativi dati. Quest'area dovrebbe essere utilizzata senza causare scritture che ne vadano al di fuori e, una volta non necessaria, dovrebbe essere deallocata. Evitando così che per errore il codice continui a considerarla valida.

Molte vulnerabilità vengono prodotte proprio da violazioni di queste regole, portando all'accesso di aree dati non consentite o alla perdita di strutture dati. Vulnerabilità di questo genere possono causare malfunzionamenti o, peggio ancora, offrire una spalla a tentativi di violazione fraudolenta.

Rust e gestione della memoria

Nella storia dei linguaggi di programmazione, gli approcci alla gestione della memoria sono stati sostanzialmente due:

  • lasciare tutto il controllo nelle mani del programmatore C
  • impiego del garbage collector Java
    Questo approccio può essere considerato più sicuro perché non lascia nelle mani del programmatore un aspetto cosi importante. Ma è stato spesso tacciato di minori prestazioni in quanto il garbage collector è un meccanismo che consuma risorse.

Rust propone una terza via cercando di mantenere salde le prestazioni e la sicurezza: pone la sicurezza della memoria nelle mani del compilatore Non esiste un garbage collector

Parleremo diffusamente di questo approccio basato sui due meccanismi detti ownership borrowing

Ti consigliamo anche