Я вижу несколько причин для этого:
- Erlang предназначен для параллелизма
- Erlang предназначен для распределенных систем
- Erlang предназначен для Soft RealTime Systems
- Erlang предназначен для доступности
Однако он не подходит для сокращения чисел, но имеет хорошую готовность для взаимодействия с C и C ++ и другими языками.Используйте правильный инструмент для правильной работы.
Предназначен для параллелизма
Erlang - это ориентированный на параллельные языки язык программирования, который хорошо подходит для приложений, которые могут иметь высокую степень параллелизма, например игровых серверов.Процессы Эрланга намного более легкие и имеют хорошую производительность в процессе коммуникации.Это означает, что приложение, реализованное в erlang, может иметь гораздо больше процессов, чем приложение в C ++ может иметь потоки.См. Также мой вопрос Технически, почему процессы в Erlang более эффективны, чем потоки ОС .
Предназначен для распределенных систем
Erlang также имеет встроенные функции, которые делают программиста более продуктивнымпри работе с распределенной системой.Имеются встроенные языковые примитивы для отправки и получения сообщений между процессами, и он используется таким же образом, если процесс расположен на другом ядре или компьютере.Также программисту не приходится иметь дело с сортировкой и сериализацией при отправке сообщений между процессами, что является встроенным в язык.
Разработано для мягких систем реального времени
Разработан Эрлангдля мягких систем реального времени, и это полезно при работе с игровыми серверами.По сравнению с C ++ он имеет встроенное управление памятью, которое будет гораздо более продуктивным для программиста.C ++ и malloc будут страдать от проблем при использовании многих потоков и могут быть узким местом ( См. Презентацию Поддержка Erlang SMP - за кадром в (14:00) ).По сравнению с Java сборка мусора в Erlang выполняется для каждого процесса (гораздо меньшего размера), и это будет полезно в системе реального времени.
Предназначен для доступности
Erlang предназначен для приложений Telecom, гдедоступность имеет решающее значение.Одна из функций доступности заключается в том, что приложения могут обновляться во время выполнения с помощью горячей замены кода.Это может быть полезно, если вы хотите обновить игровой сервер, пока он еще в сети.
Я бы порекомендовал посмотреть эту презентацию: Erlang - Программное обеспечение для параллельного мира