Rust è pubblicizzato come un linguaggio "concorrente", cosa significa questo in particolare e in che modo è diverso da altri linguaggi come il C ++?
Potrebbe significare due cose:
Capacità di programmazione concorrente
Rust fornisce librerie standard per la creazione e l'esecuzione di più esecuzioni simultanee. Principalmente attraverso il threading. Ma questo non è niente di speciale dato che la maggior parte dei linguaggi moderni, incluso C ++, fornisce le stesse librerie di threading standard.
Quindi direi che questo non è ciò che significa la pubblicità.
Sicurezza della programmazione concorrente
Questa è un'area in cui Rust è unica. A causa del sistema di tipo di Rust e del rigoroso modello di memoria, i creatori di Rust sostengono che se il codice viene compilato, si è certi che non ci sono errori concomitanti comuni nel codice. Cose come deadlock o dati obsoleti, che potrebbero essere comuni nel codice concorrente di altre lingue, sono sconosciute nel codice Rust.
Ma questo ha un costo nel rendere la creazione di tale codice molto più complicata, in quanto soddisfare le rigide regole del compilatore richiede molte conoscenze approfondite ed esperienza con il sistema di tipi e il modello di memoria di Rust.
Questo diventa ancora più importante, poiché il debugging e il fixing degli errori simultanei è una delle parti più difficili della scrittura del codice concorrente. Quindi avere un sistema che non garantisce tali errori sarebbe visto come un enorme punto vendita.