Corso Rust
Corso Rust: Rust è un linguaggio di programmazione abbastanza moderno. Nasce nel 2009 come progetto personale di Graydon Hoare, sviluppatore del team Mozilla che appoggia lo sviluppo come azienda nel 2010. Attualmente è un progetto open-source con Mozilla principale contributore. Il suo compilatore è stato rilasciato nel 2012 mentre la sua prima versione stabile 1.0 è stata rilasciata nel 2015.
Rust è multi-paradigma e ad uso generico. E’ considerato un linguaggio per la “programmazione di sistema” ovvero per realizzare sistemi operativi o applicazioni strettamente connesse ai sistemi operativi (Windows, Linux o macOS). Tuttavia essendo supportato da WebAssembly consente anche lo sviluppo di applicazioni web o in campi diversi.
Rust ha l’obiettivo di creare sistemi complessi, anche multithreaded ed altamente sicuri. Nelle sue caratteristiche troviamo le elevate prestazioni, controllo dell’allocazione di memoria, la sicurezza appunto e la concorrenza. Tra le sue particolarità vi è la gestione degli errori con la cosidetta macro “panic!” e l’assenza di un garbage collector.
Rust infine si differenzia da altri linguaggi ad oggetti per le seguenti caratteristiche:
- utilizzo dei concetti di ownership e borrowming degli oggetti
- talvolta è richiesto specificare il lifetime di un oggetto gestito dai puntatori
- l’ereditarietà di implementazione è assente
- non esistono metaclassi nè le eccezioni
- non si utilizza l’overload delle funzioni
Oggi Rust viene utilizzando nello sviluppo in ambito cloud e microservizi.
Casi d’uso di Rust nel mercato sono: Dropbox che ha implementato il proprio backend separandosi dai servizi Amazon; Cloudflare utilizza Rust per implementare un interprete TCP/IP; Google Fuchsia contiene parti scritte in Rust e supporta il linguaggio per lo sviluppo di applicazioni native.
Negli ultimi anni come da sondaggi di Stack Overflow, Rust è risultato il linguaggio preferito dalle community di sviluppatori di tutto il mondo.
Obiettivi del Corso Rust:
Formare lo studente per programmare software o sistemi con il linguaggio Rust
Requisiti per i discenti Corso Rust:
Conoscenze di un linguaggio di programmazione (preferibile il C/C++), database e preferibile sistema operativo Unix-like.
Il linguaggio Rust può considerarsi un antagonista del Go.
Corso Rust attivabile solo per le aziende e su richiesta.
Modalità virtual classroom online in diretta (o frontale in-house).
Programma didattico Corso Rust (32 ore)
1. Introduzione a Rust
Fondamenti del linguaggio
Installazione Rust
Configurazione dell’ambiente di sviluppo
Risorse online utili
2. Iniziare con Rust
Variabili
Tipi di dati
Funzioni
Commenti
Flusso di controllo
Espressioni
3. Ownership di Rust
Definizione di proprietà
Sicurezza della memoria
Stack e Heap
Borrowing
Slices
4. Structuring Data
Strutture
Dati correlati
Instantiating Structs
Tuple Structs
Proprietà (ownership) dei dati strutturali
5. Pattern Matching
Enum
Tipi di definizione
Espressioni
Match control flow operetor
6. Tenere traccia del progetto
Packages
Crates
Moduli
Paths
Ambito di controllo e privacy
7. Rust Collections
Liste
Valori
Vettori
Keys e mappe hash
8. Gestione degli errori
Panicking
Backtracing
Utilizzare il Result Type
9. Generici
Tipi
Traits
Lifetimes
10. Testing
Scrittura tests
Cargo test
Unit tests