Leggendo sulla concorrenza in Erlang , mi viene in mente il toolkit di concorrenza Akka . Entrambi ti offrono strumenti per prevenire o limitare le condizioni di gara . Ma puoi inviare collegamenti a dati mutabili ad altri processi usando il toolkit Akka, che non è ancora sicuro. Vedo Akka come uno strumento utile, ma non fornisce protezione dall'accesso fuori ordine a oggetti e dati che portano a condizioni di competizione, deadlock e / o fame. Non ti impedisce di scrivere codice non sicuro nel modo in cui Java o C # ti proteggono dalla scrittura della maggior parte dei tipi di perdite di memoria che puoi scrivere in C ++ (puoi comunque creare perdite di memoria in Java ingannando il garbage collector, ma è meno di un problema rispetto a dover ricordare di liberare ogni byte assegnato).
Erlang garantisce un certo grado di correttezza, prestazioni e robustezza nella programmazione concorrente? Penso che i sistemi operativi forniscano protezione quando si accede alle risorse di sistema (supponendo che gli autori dei driver abbiano fatto bene il loro lavoro). I database ACID forniscono protezione per letture e aggiornamenti. Quindi sembra che questo sia un problema risolvibile. O una soluzione sicura generica cancellerebbe i guadagni in termini di prestazioni offerti dalla concorrenza? Altre lingue o toolkit offrono il tipo di sicurezza concorrente che Erlang fa (o non fa)?
Questa è una domanda di follow-up al commento di @ Malfist sulla risposta di @ user1249 a Quale linguaggio di programmazione genera meno bug difficili da trovare? .