Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
Erlang
Good news, bad news.
О себе
7 лет в IT
C/C++/Ruby
Специализация:
облачные хранилища
(Dropbox), виртуализация
Linux/Mac OS X
Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?
Алексей Туля - А нужен ли вам erlang?
Идея создания языка
Как создавать программы, почти такие же надежные,
как железо
Как программировать, почти так же просто,
как собирать железо
!

Позитивное программирование
Краткая история

1986 - первая версия
(by Ericsson in Computer Science lab)
1998 - открыт исходный код
!

История в трех словах:
завелось и поехало
Истории успеха

ejabberd, CouchDB, Facebook Chat backend,
Amazon SimpleDB, Twitter client integration
Возможности Erlang

“Each year your sequential programs will go slower.
Each year your concurrent programs will go faster.”
!

Joe Armstrong (Erlang inventor)
Возможности Erlang

- Модель многопоточности, основанная на легких процессах,
обменивающихся сообщениями;
- Распределенность, сетевая прозрачность;
- Устойчивость к ошибкам;
- Горячее обновление кода.
Возможности Erlang

Erlang - это OTP (Open Telecom Platform)
Многопоточность Erlang

Нет deadlock и race conditions? есть.
особенно если обращаться к внешним
ресурсам.
Распределенность Erlang

Чтобы сделать программу на erlang надежной нужно как минимум два компьютера.
Устойчивость к ошибкам Erlang
Три уровня защиты:
Изолированность потоков,
супервайзеры,
распределенность
!

На практике все это все равно не спасает
от проблем
Горячее обновление кода Erlang

Было в лиспе
OOP и Erlang
Erlang - OOP framework
Мой путь

+
Достоинства языка Erlang
- неизменяемые переменные
- нет общего состояния между процессами (передача
сообщений)
- быстрое обучение (несколько недель)
- зрелость языка
- меньше кода - меньше багов
- горячее обновление кода
- удобное создание и парсинг бинарных протоколов
- есть вакансии. хорошие. сравнительно много для
мира ФП
Недостатки языка Erlang
 - это не язык общего назначения
 - динамическая типизация - для меня недостаток
 - плохая документация для библиотек
 - бардак с библиотеками, нестабильны, куча версий,
форков и непонятно какую использовать
 - синтаксис языка часто удручает. Это Prolog (80’s).
- тяжелый рефакторинг, много синтаксических ошибок
 - хочется статической типизации
 - erlang  медленный. В важных местах прибегать к С.
 - мало разработчиков
Erlang хорошо подходит для
- системы мониторинга
- распределенные БД
- СПЕЦИАЛИЗИРОВАННЫЕ высокопроизводительные
веб-серверы
- приложения, нуждающиеся в кластеризации и
распределении вычислений
- для soft real-time приложений (streaming видео это soft
real time, баллистические ракеты это hard real-time).
- различные load-balancer без привязки к протоколу.
Erlang плохо подходит для

- веб-приложений которые работают с CRUD (create/retrieve/
update/delete), веб-формы, веб-UI, сайты).
- тяжелые вычислительные задачи
- обработка строк: парсеры, преобразования, и.т.д..
- Desktop GUI
Почему не стоит писать на Erlang
- политика (erlang это не С и не Java, политика
компании)
 - один производитель - представьте, что Ericcson
перестанет поддерживать erlang
 - не мейнстрим. мало программистов.
Литература
1. Learn you some Erlang for Great Good
2. tryerlang.org
Вопросы?
Спасибо за внимание!

More Related Content

Алексей Туля - А нужен ли вам erlang?

  • 2. О себе 7 лет в IT C/C++/Ruby Специализация: облачные хранилища (Dropbox), виртуализация Linux/Mac OS X
  • 6. Идея создания языка Как создавать программы, почти такие же надежные, как железо Как программировать, почти так же просто, как собирать железо ! Позитивное программирование
  • 7. Краткая история 1986 - первая версия (by Ericsson in Computer Science lab) 1998 - открыт исходный код ! История в трех словах: завелось и поехало
  • 8. Истории успеха ejabberd, CouchDB, Facebook Chat backend, Amazon SimpleDB, Twitter client integration
  • 9. Возможности Erlang “Each year your sequential programs will go slower. Each year your concurrent programs will go faster.” ! Joe Armstrong (Erlang inventor)
  • 10. Возможности Erlang - Модель многопоточности, основанная на легких процессах, обменивающихся сообщениями; - Распределенность, сетевая прозрачность; - Устойчивость к ошибкам; - Горячее обновление кода.
  • 11. Возможности Erlang Erlang - это OTP (Open Telecom Platform)
  • 12. Многопоточность Erlang Нет deadlock и race conditions? есть. особенно если обращаться к внешним ресурсам.
  • 13. Распределенность Erlang Чтобы сделать программу на erlang надежной нужно как минимум два компьютера.
  • 14. Устойчивость к ошибкам Erlang Три уровня защиты: Изолированность потоков, супервайзеры, распределенность ! На практике все это все равно не спасает от проблем
  • 15. Горячее обновление кода Erlang Было в лиспе
  • 16. OOP и Erlang Erlang - OOP framework
  • 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  - не мейнстрим. мало программистов.
  • 23. Литература 1. Learn you some Erlang for Great Good 2. tryerlang.org