Prefazione

Non è sempre stato così chiaro, ma il linguaggio di programmazione Rust è fondamentalmente circa l'empowerment: non importa che tipo di codice stai scrivendo ora, Rust ti dà il potere di andare più lontano, di programmare con fiducia in una varietà più ampia di domini che prima.

Prendi, ad esempio, il lavoro a "livello di sistema" che si occupa di dettagli di basso livello di gestione della memoria, rappresentazione dei dati e Concurrency. Tradizionalmente, questo ambito di programmazione è visto come arcano, accessibile solo a pochi eletti che hanno dedicato gli anni necessari per imparare a evitare le sue trappole infami. E anche coloro che lo praticano lo fanno con cautela, affinché il loro codice non sia aperto a exploit, crash, o corruzione.

Rust elimina queste barriere eliminando le vecchie trappole e fornendo un set di strumenti amichevole e lucidato per aiutarti lungo il percorso. I programmatori che hanno bisogno di "scendere" a un controllo di livello inferiore possono farlo con Rust, senza assumere il rischio abituale di crash o buchi di sicurezza, e senza dover imparare i punti sottili di un toolchain capriccioso. Ancora meglio, il linguaggio è progettato per guidarti naturalmente verso il codice affidabile che è efficiente in termini di velocità e uso della memoria.

I programmatori che stanno già lavorando con codice a basso livello possono usare Rust per aumentare le loro ambizioni. Ad esempio, l'introduzione del parallelismo in Rust è una operazione a basso rischio: il compilatore catturerà i classici errori per te. E puoi affrontare ottimizzazioni più aggressive nel tuo codice con la fiducia che non introdurrà accidentalmente crash o vulnerabilità.

Ma Rust non si limita alla programmazione di sistemi a basso livello. È abbastanza espressivo e ergonomico per rendere piacevole scrivere app CLI, server web e molti altri tipi di codice - troverai semplici esempi di entrambi più avanti nel libro. Lavorare con Rust ti permette di sviluppare competenze che si trasferiscono da un dominio all'altro; puoi imparare Rust scrivendo un'app web, poi applicare quelle stesse competenze per targettare il tuo Raspberry Pi.

Questo libro abbraccia pienamente il potenziale di Rust per potenziare i suoi utenti. È un testo amichevole e accessibile, pensato per aiutarti a fare un salto di livello non solo nella tua conoscenza di Rust, ma anche nel tuo reach e nella tua confidenza come programmatore in generale. Quindi immergiti, preparati a imparare - e benvenuto nella comunità Rust!

— Nicholas Matsakis e Aaron Turon