- Erlang приятен, как язык и платформа
- удобен для больших команд
- удобен для узких ниш
Отступление
Programming…
- …in the small
- …in the large
Хорошее
- очень простой язык
- pattern matching
- атомы
- хвостовая рекурсия
- list comprehensions
- модули
- иммутабельность всего
- single assignment
- нет сложных типов
Мой любимый язык: баланс выразительности и сложности
Плохое
- иммутабельность всего
- single assignment
- нет сложных типов
- очень простой язык
Хорошее
- Акторы
- OTP
- Обработка ошибок
- Не нужно думать
Erlang любят исследователи!
- статический анализ динамических языков (e.g. Dialyzer)
- распределённые алгоритмы (e.g. RAFT)
Отступление про историю
- 1995: первый продакшн
- 1998: бан в Ericsson, opensource
- 2000–2004: бан отменён
- 2006: SMP
Следы: tradeoff'ы, Mnesia, полносвязный кластер
Хорошее
- обработка ошибок
- «плавность» выполнения (вытеснение тредов)
- удобство интроспекции «на лету»
- scalability
Плохое
- большой рантайм-оверхед (~Python)
- опасность NIF
- «изображает ОС» ⓒ amarao
Большие команды
- Настоящая простота (а не как у Java)
- Ericsson, Motorola, Klarna
- одна крупная петербуржская торговая компания
Узкие ниши
- Riak, CouchDB
- Erlyvideo
- WhatsApp
- YAWNDB
- перекладывание байтиков
- инфраструктура
Сравнения
- vs lowlvl Java: Hibernate, Spring, …
- vs highlvl Java: LMAX Disruptor
- vs Python/Ruby: Django/Rails
Есть PropEr, но нет веб-фреймворка!
- простой и полезный инструмент
- быстро изучается
- совсем не silver bullet
- изучение окупается
Пользуясь случаем…
…консультирую и учу