Топ питань
Часова шкала
Чат
Перспективи
Elixir (мова програмування)
З Вікіпедії, вільної енциклопедії
Remove ads
Elixir — функційна мова програмування загального призначення з сильною (strongly typed) динамічною типізацією. Програма транслюється у байт-код, який виконується на віртуальній машині Erlang (BEAM). Крім того, Elixir має сумісність з бібліотеками Erlang та фреймворком Erlang/OTP.
Remove ads
Історія
Elixir був створений Хосе Валімом, який раніше займався розробкою фреймворка Ruby on Rails. Основною метою було зберегти всі можливості Erlang, але спростити синтаксис мови та інструменти створення проектів.
Призначення
Мова орієнтована на розробку надійних систем які забезпечують паралельну обробку запитів та невибагливі до апаратних ресурсів у порівнянні з подібними системами написаними на інших мовах програмування. Код програми виконується в легких Elixir процесах (не плутати з потоками). Beam VM створює та керує процесами Elixir. На відміну від віртуальних потоків, які можуть бути внутрішньо зіставлені з потоком ОС (операційної системи), процеси Elixir не прив'язані до жодного конкретного потоку ОС і повністю управляються внутрішньо Beam VM. Процеси ізольовані і не мають спільного стану. Передача інформації між процесами можлива тільки через синхронний або асинхронний обмін повідомленнями. Така сильна ізоляція формує основу для відмовостійкості, оскільки проблеми з одним конкретним процесом не впливають на інші запущені процеси в Beam VM. Кожен процес займає дуже малий об'єм початкової пам'яті, а отже, запуск процесу відбувається надзвичайно швидко, оскільки вони не потребують прямого втручання з боку ОС.
Головним інструментом для створення проектів, компіляції, керування залежностями є утиліта під назвою Mix.
Remove ads
Метапрограмування
Elixir має систему для метапрограмування, на яку суттєво вплинула Clojure.[3]
Використання
Мовою Elixir написано код центральної бази даних Електронної системи охорони здоров'я України[4][5].
Див. також
Примітки
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads