2. О себе
7 лет в IT
C/C++/Ruby
Специализация:
облачные хранилища
(Dropbox), виртуализация
Linux/Mac OS X
3.
4.
5.
6. Идея создания языка
Как создавать программы, почти такие же надежные,
как железо
Как программировать, почти так же просто,
как собирать железо
!
Позитивное программирование
7. Краткая история
1986 - первая версия
(by Ericsson in Computer Science lab)
1998 - открыт исходный код
!
История в трех словах:
завелось и поехало
9. Возможности Erlang
“Each year your sequential programs will go slower.
Each year your concurrent programs will go faster.”
!
Joe Armstrong (Erlang inventor)
10. Возможности Erlang
- Модель многопоточности, основанная на легких процессах,
обменивающихся сообщениями;
- Распределенность, сетевая прозрачность;
- Устойчивость к ошибкам;
- Горячее обновление кода.
14. Устойчивость к ошибкам Erlang
Три уровня защиты:
Изолированность потоков,
супервайзеры,
распределенность
!
На практике все это все равно не спасает
от проблем
18. Достоинства языка Erlang
- неизменяемые переменные
- нет общего состояния между процессами (передача
сообщений)
- быстрое обучение (несколько недель)
- зрелость языка
- меньше кода - меньше багов
- горячее обновление кода
- удобное создание и парсинг бинарных протоколов
- есть вакансии. хорошие. сравнительно много для
мира ФП
19. Недостатки языка Erlang
- это не язык общего назначения
- динамическая типизация - для меня недостаток
- плохая документация для библиотек
- бардак с библиотеками, нестабильны, куча версий,
форков и непонятно какую использовать
- синтаксис языка часто удручает. Это Prolog (80’s).
- тяжелый рефакторинг, много синтаксических ошибок
- хочется статической типизации
- erlang медленный. В важных местах прибегать к С.
- мало разработчиков
20. Erlang хорошо подходит для
- системы мониторинга
- распределенные БД
- СПЕЦИАЛИЗИРОВАННЫЕ высокопроизводительные
веб-серверы
- приложения, нуждающиеся в кластеризации и
распределении вычислений
- для soft real-time приложений (streaming видео это soft
real time, баллистические ракеты это hard real-time).
- различные load-balancer без привязки к протоколу.
21. Erlang плохо подходит для
- веб-приложений которые работают с CRUD (create/retrieve/
update/delete), веб-формы, веб-UI, сайты).
- тяжелые вычислительные задачи
- обработка строк: парсеры, преобразования, и.т.д..
- Desktop GUI
22. Почему не стоит писать на Erlang
- политика (erlang это не С и не Java, политика
компании)
- один производитель - представьте, что Ericcson
перестанет поддерживать erlang
- не мейнстрим. мало программистов.