Leggendo la concorrenza in Erlang , mi ricorda kitkit di concorrenza di Akka . Entrambi ti forniscono gli strumenti per prevenire o limitare le condizioni di gara . Ma puoi inviare collegamenti a dati mutabili ad altri processi usando il toolkit di Akka, che è ancora pericoloso. Vedo Akka come uno strumento utile, ma non fornisce protezione contro l'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 dallo scrivere la maggior parte dei tipi di perdite di memoria che puoi scrivere in C ++ (puoi ancora creare perdite di memoria in Java ingannando il garbage collector, ma è meno di un problema piuttosto che dover ricordare di liberare ogni byte che si assegna).
Erlang garantisce un grado di correttezza, prestazioni e robustezza nella programmazione concorrente? Penso che i sistemi operativi forniscano protezione quando accedono alle risorse del sistema (presupponendo 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 generica sicura cancellerebbe i guadagni in termini di prestazioni forniti dalla concorrenza? Altri linguaggi o toolkit forniscono il tipo di sicurezza concorrente che Erlang fa (o non fa)?
Questa è una domanda successiva a @ Il commento di Malfist sulla risposta di @ user1249 a Quale linguaggio di programmazione genera meno bug difficili da trovare? .