Читаючи про одночасність в Ерлані , мені нагадує інструментарій інструментарію паралельних змагань Akka . Обидва дають вам інструменти для запобігання або обмеження умов перегонів . Але ви можете надсилати посилання на змінні дані до інших процесів, використовуючи інструментарій Akka, який все ще небезпечний. Я вважаю, що Акка є корисним інструментом, але він не забезпечує захист від нестандартного доступу до об'єктів і даних, що призводить до умов перегонів, тупику та / або голоду. Це не заважає писати небезпечний код тим, як Java або C # захищає вас від написання більшості видів витоків пам’яті, які можна записати на C ++ (ви все одно можете створювати витоки пам’яті на Яві, перевіряючи смітник, але менше проблеми, ніж пам'ятати, щоб звільнити кожен виділений вами байт).
Чи гарантує Ерланг ступінь коректності, продуктивності та надійності при одночасному програмуванні? Я думаю, що операційні системи забезпечують захист під час доступу до системних ресурсів (якщо припустити, що автори драйверів виконали свою роботу добре). Бази даних ACID забезпечують захист для читання та оновлень. Тож, здається, це вирішувана проблема. Або загальне безпечне рішення призвело б до знищення підвищення продуктивності, яке забезпечує одночасність? Чи інші мови чи набори інструментів забезпечують таку сумісну безпеку, яку робить (чи ні) Ерланг?
Це додаткове запитання до коментаря @ Malfist щодо відповіді @ user1249 на те, Яка мова програмування генерує найменш важких помилок? .