Преимущество Erlang для совместной работы в реальном времени

Я пытаюсь создать приложение для редактирования документов и чата в реальном времени. Я давно хотел выучить Erlang, и мне было интересно, может ли это быть хорошим проектом, чтобы опробовать его.

В частности, в какой момент я начну видеть преимущества отказоустойчивости и легкости процессов Erlang по сравнению, скажем, с приложением Rails, работающим на Mongrel, или стеком LAMP? Будет ли это 100 одновременно работающих пользователей? 1000? 100000? По сути, я не знаю, стоит ли изучать новый язык или хватит моих текущих навыков. Спасибо!

1 ответ

Решение

Вопрос немного субъективен, но я все равно постараюсь ответить на него:

Как давний пользователь Erlang, я бы сказал, что вы увидите выгоду, как только у вас будет более 1 пользователя. Эрланг использует модель актера при работе с параллелизмом. Одним из его преимуществ является то, что вы можете обрабатывать каждое взаимодействие / сеанс / сценарий с пользователем линейным способом, так же, как вы писали бы любую другую процедурную программу.

Красота становится более очевидной, когда вы начинаете обрабатывать взаимодействие между многими пользователями одновременно. Затем вы запускаете один экземпляр вашей маленькой "процедурной программы" для каждого пользователя. Таким образом, вам не нужно обрабатывать сложные части масштабирования самостоятельно, вы просто должны определить взаимодействие между вашими актерами, а виртуальная машина Erlang будет уравновешивать все остальное (вообще говоря).

Поэтому я бы сказал, что наибольшим преимуществом использования Erlang является не производительность (хотя некоторые вещи более просты и оптимизированы в Erlang), а упрощение модели и то, насколько естественным становится программирование параллелизма.

Другие вопросы по тегам