La lecture sur la concurrence dans Erlang , me rappelle la boîte à outils de concurrence Akka . Les deux vous donnent des outils pour empêcher ou limiter les conditions de course . Mais vous pouvez envoyer des liens vers des données mutables vers d'autres processus à l'aide de la boîte à outils Akka, qui n'est toujours pas sûre. Je considère Akka comme un outil utile, mais il ne fournit pas de protection contre un accès hors service aux objets et aux données conduisant à des conditions de concurrence, à un blocage et / ou à la famine. Cela ne vous empêche pas d'écrire du code dangereux de la façon dont Java ou C # vous protège contre l'écriture de la plupart des types de fuites de mémoire que vous pouvez écrire en C ++ (vous pouvez toujours créer des fuites de mémoire en Java en trompant le garbage collector, mais c'est moins problème que de ne pas oublier de libérer chaque octet que vous allouez).
Erlang garantit-il un degré d'exactitude, de performance et de robustesse dans la programmation simultanée? Je pense que les systèmes d'exploitation offrent une protection lors de l'accès aux ressources système (en supposant que les rédacteurs de pilotes ont bien fait leur travail). Les bases de données ACID offrent une protection pour les lectures et les mises à jour. Il semble donc que ce soit un problème résoluble. Ou une solution générique sûre effacerait-elle les gains de performances que fournit la concurrence? D'autres langues ou kits d'outils offrent-ils le type de sécurité simultanée qu'Erlang offre (ou non)?
Il s'agit d'une question complémentaire au commentaire de @ Malfist sur la réponse de @ user1249 à Quel langage de programmation génère le moins de bogues difficiles à trouver? .
la source