2. Як ми програмували ?
• Одночасно виконується одне завдання.
• Якщо щось піде не так - процес/система
крешиться.
• Щоб дізнатися чи є оновлення - потрібно
постій робити запити.
• Організація багатопотоковості –
надзвичайно складна.
3. Зміни
• Ми маємо багатопроцесорті сервери і технології
віртуалізації
• Ми хочемо щоб програма швидко реагувала на
наші команди
• Паралельна обробка великих обємів данних
• Необхідна коректна реакція на форсмажорні
обставини
• Легке маштабування
5. Основні особливості
• Декларативна мова програмування.
• Паралельне виконання коду без блокувань,
синхронізації і спільної памяті
• Віртуальна машина яка максимально
використовує всі ресурси сервера/кластера
• Коректна робота за будь-яких обставин
• Легке маштабування
• Готовий фреймворк і база данних
• Оновлення коду на льоту
6. Чи легко вивчити цю мову ?
Так – якщо Ви зможете змінити своє мислення
7. Змінюємо спосіб мислення 1
• Цілі числа довільного розміру
• Змінним можна присвоїти значення один
раз
• Немає звичних масивів, але є атоми,
кортежі, списки.
• «=» оператор шаблону а не присвоєння (x
=6, x=4+2)
• Немає циклів
8. Змінюємо спосіб мислення 2
• BIF (built-in functions) і NIF (native
implemented functions)
• Проста робота з бінарними данними
• Створення процесів і відправка
повідомлень між ними є надзвичано проста
і швидка
• Єдиний спосіб взаємодії між процесами –
це відправка повідомлень
9. Змінюємо спосіб мислення 3
• Ви маєте повний контроль над процесами
• Легко створювати кластер
• Простий спосіб створення TPC/UDP сервера
(Nonblocking/Blocking/Hybrid)
• Легка взаємодія з зовнішніми програмами
С/python і т.д.
• ETS / DETS таблиці
• OTP Фреймворк
10. Змінюємо спосіб мислення 4
• Mnesia
• Оновлення коду на льоту
• Моніторинг/ логи / дебаг / тестування
11. Де не використовувати Erlang
• Парсинг
• Конвертація данних
• Складна обробка данних
• Однопотокові завдання