Ler sobre concorrência em Erlang me lembra o kit de ferramentas para concorrência da Akka . Ambos oferecem ferramentas para impedir ou limitar as condições de corrida . Mas você pode enviar links para dados mutáveis para outros processos usando o kit de ferramentas Akka, que ainda é inseguro. Eu vejo o Akka como uma ferramenta útil, mas não fornece proteção contra acesso fora de ordem a objetos e dados, levando a condições de corrida, impasse e / ou fome. Isso não impede que você escreva códigos inseguros da maneira que Java ou C # o protege de escrever a maioria dos tipos de vazamentos de memória que você pode escrever em C ++ (você ainda pode criar vazamentos de memória em Java enganando o coletor de lixo, mas é menos de um problema do que ter que lembrar de liberar todos os bytes que você aloca).
Erlang garante um grau de correção, desempenho e robustez na programação simultânea? Eu acho que os sistemas operacionais fornecem proteção ao acessar os recursos do sistema (supondo que os gravadores de drivers tenham feito bem seu trabalho). Os bancos de dados ACID fornecem proteção para leituras e atualizações. Portanto, parece que este é um problema solucionável. Ou uma solução segura genérica apagaria os ganhos de desempenho que a simultaneidade fornece? Outros idiomas ou kits de ferramentas fornecem o tipo de segurança simultânea que Erlang oferece (ou não)?
Esta é uma pergunta de acompanhamento do comentário de @ Malfist na resposta de @ user1249 para Qual linguagem de programação gera o menor número de erros difíceis de encontrar? .
fonte