Язык программирования Erlang
Erlang — функциональный язык программирования с сильной динамической типизацией. Язык отлично подходит для разработки распределённых вычислительных систем.
Erlang разработан и поддерживается компанией Ericsson в 1987 году для использования в телекомуникационных системах. Он был разработан для использования в распределённых и отказоустойчивых системах «мягкого» реального времени. В экосистеме Erlang имеется стандартная библиотека модулей и библиотека шаблонных решений — фреймворк OTP (Open Telecom Platform).
Программы на Erlang компилируются в байт‑код, исполняемые виртуальной машиной BEAM, причём виртуальных машин может быть несколько на различных узлах распределённой вычислительной сети. Erlang‑системы поддерживают горячую замену кода, что исключает остановку системы при установке обновлений.
В последние годы Erlang используется не только в телекоммуникационных системах, но и в разработке высоконагруженных распределённых веб‑приложений. Например, чат Facebook и WhatsApp написанны именно на Erlang. Также Erlang применяется в нескольких NoSQL‑базах данных высокой доступности.
Виртуальная машина Erlang используется и в языке программирования Elixir. Сам язык программирования Elixir построен на базе Erlang, что обеспечивает распределённость, отказоустойчивость, исполнение в режиме мягкого реального времени, метапрограммирование с макросами и полиморфизмом. По сути, Elixir — это надстройка над Erlang, упрощающая разработку и сохраняющая все преимущества Erlang.
Мы в своей работе используем Elixir для разработки сервисов, работающих под высокой нагрузкой, требовательных к скорости отклика и устанавливающих большое количество подключений по websocket'ам.