Перейти до вмісту

Elixir (мова програмування)

Очікує на перевірку
Матеріал з Вікіпедії — вільної енциклопедії.
Elixir
Парадигмамультипарадигмальна: паралельна, функційна
Дата появи2012
РозробникJosé Valim
Останній реліз1.16.2 (10 березня, 2024; 2 роки тому (2024-03-10)[1])
Система типізаціїдинамічна типізація, сильна типізація
Під впливом відErlang, Clojure, Ruby
Мова реалізаціїElixir[2] Редагувати інформацію у Вікіданих
ПлатформаBEAMd Редагувати інформацію у Вікіданих
Операційна системаБагато-платформова
ЛіцензіяApache 2.0
Звичайні розширення файлів.ex, .exs
Репозиторій вихідного кодуgithub.com/elixir-lang/elixir Редагувати інформацію у Вікіданих
Вебсайтelixir-lang.org

Elixirфункційна мова програмування загального призначення з сильною (strongly typed) динамічною типізацією. Програма транслюється у байт-код, який виконується на віртуальній машині Erlang (BEAM). Крім того, Elixir має сумісність з бібліотеками Erlang та фреймворком Erlang/OTP.

Історія

[ред. | ред. код]

Elixir був створений Хосе Валімом, який раніше займався розробкою фреймворка Ruby on Rails. Основною метою було зберегти всі можливості Erlang, але спростити синтаксис мови та інструменти створення проектів.

Призначення

[ред. | ред. код]

Мова орієнтована на розробку надійних систем які забезпечують паралельну обробку запитів та невибагливі до апаратних ресурсів у порівнянні з подібними системами написаними на інших мовах програмування. Код програми виконується в легких Elixir процесах (не плутати з потоками). Beam VM створює та керує процесами Elixir. На відміну від віртуальних потоків, які можуть бути внутрішньо зіставлені з потоком ОС (операційної системи), процеси Elixir не прив'язані до жодного конкретного потоку ОС і повністю управляються внутрішньо Beam VM. Процеси ізольовані і не мають спільного стану. Передача інформації між процесами можлива тільки через синхронний або асинхронний обмін повідомленнями. Така сильна ізоляція формує основу для відмовостійкості, оскільки проблеми з одним конкретним процесом не впливають на інші запущені процеси в Beam VM. Кожен процес займає дуже малий об'єм початкової пам'яті, а отже, запуск процесу відбувається надзвичайно швидко, оскільки вони не потребують прямого втручання з боку ОС.

Головним інструментом для створення проектів, компіляції, керування залежностями є утиліта під назвою Mix.

Метапрограмування

[ред. | ред. код]

Elixir має систему для метапрограмування, на яку суттєво вплинула Clojure.[3]

Використання

[ред. | ред. код]

Мовою Elixir написано код центральної бази даних Електронної системи охорони здоров'я України[4][5].

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. Releases - elixir-lang/elixir.
  2. https://github.com/EvanLi/Github-Ranking/blob/master/Data/github-ranking-2025-07-06.csv — 2025.
  3. Artur Plysyuk (28 жовтня 2020). Elixir — мова для роботи з I/O. Синтаксис, документація та спільнота. dou.ua (укр.). DOU.ua. Архів оригіналу за 1 листопада 2020. Процитовано 10 грудня 2020.
  4. Projects. Edelnab. Архів оригіналу за 5 серпня 2020. Процитовано 3 вересня 2020. E-health: a medical information system for the Ministry of Healthcare of Ukraine, central IT component for the entire healthcare system of Ukraine. It’s one of the biggest open-source governmental projects in the world and one of the biggest open source Elixir project that is in production as well.»
    «(E-health: медична інформаційна система для Міністерства охорони здоров’я України, центральний ІТ-компонент для всієї системи охорони здоров’я України. Це один з найбільших урядових проектів з відкритим кодом у світі та один з найбільших проектів з відкритим кодом Elixir, який також знаходиться у виробництві.)
  5. Текст: Ганна Левченко (3 вересня 2020). Інформація про наявність медикаментів у лікарнях буде відкритою і оновлюватиметься в реальному часі – заступник міністра охорони здоров'я Кучер. Інтерфакс-Україна. Архів оригіналу за 4 вересня 2020. Процитовано 03.09.2020.

Посилання

[ред. | ред. код]