Benefits of Rust

Alcuni punti di forza unici di Rust:

  • Compile time memory safety - whole classes of memory bugs are prevented at compile time

    • Nessuna variabile non inizializzata.
    • Nessun double-frees.
    • Nessun use-after-free.
    • Nessun puntatore NULL.
    • Nessun mutex dimenticato bloccato.
    • Nessuna ‘situazione di corsa’ (race condition) di dati tra i thread.
    • Nessuna invalidazione dell’iteratore.
  • No undefined runtime behavior - what a Rust statement does is never left unspecified

    • L’accesso agli array è controllato dai loro limiti.
    • L’overflow di numeri interi è definito (panic or wrap-around).
  • Modern language features - as expressive and ergonomic as higher-level languages

    • Enumerazioni (Enums) e pattern matching.
    • Generici (generic).
    • Nessun overhead FFI.
    • Astrazioni a costo zero (Zero-cost abstractions).
    • Ottimi errori del compilatore.
    • Gestore delle dipendenze integrato.
    • Supporto integrato per i test.
    • Eccellente supporto del protocollo Language Server.
This slide should take about 3 minutes.

Do not spend much time here. All of these points will be covered in more depth later.

Assicurati di chiedere alla classe con quali linguaggi hanno esperienza. In base alla risposta puoi evidenziare diverse caratteristiche di Rust:

  • Esperienza con C o C++: Rust elimina un’intera classe di errori di runtime tramite il borrow checker. Ottiene prestazioni come in C e C++, ma non hai i problemi di sicurezza della memoria. Inoltre, si ha un linguaggio moderno con costrutti come il pattern matching e la gestione delle dipendenze incorporata.

  • Esperienza con Java, Go, Python, JavaScript…: Ottiene la stessa sicurezza della memoria come in quei linguaggi, più una sensazione simile ad un linguaggio di alto livello. Inoltre raggiunge prestazioni veloci e prevedibili come C e C++ (nessun Garbage Collector) così come l’accesso all’hardware di basso livello (quando serve)