Эликсир (язык программирования) - Википедия - Elixir (programming language)

Эликсир
язык программирования эликсир
Парадигмамультипарадигма: функциональный, одновременный, распределен, ориентированный на процесс
Впервые появился2011; 9 лет назад (2011)
Стабильный выпуск
1.11.2 / 3 ноября 2020; 41 дней назад (2020-11-03)[1]
Печатная дисциплинадинамичный, сильный, утка
ПлатформаErlang
ЛицензияЛицензия Apache 2.0[2]
Расширения имени файла.ex, .exs
Интернет сайтэликсир-ланг.org
Под влиянием
Clojure, Erlang, Рубин
Под влиянием
LFE

Эликсир это функциональный, одновременный, общее назначение язык программирования что работает на ЛУЧ виртуальная машина используется для реализации Erlang язык программирования.[3] Elixir строится поверх Erlang и использует те же абстракции для построения распределен, отказоустойчивой Приложения. Эликсир также предоставляет производительные инструменты и расширяемый дизайн. Последний поддерживается во время компиляции метапрограммирование с макросы и полиморфизм по протоколам.[4]

Эликсир используют такие компании, как PagerDuty,[5] Раздор,[6] Brex,[7] Е-МетроТел,[8] Pinterest,[9] Moz,[10] Отчет об отбеливателе,[11] Схема,[12] Обратный,[13] Диввы,[14] FarmBot[15] и для строительства встроенные системы.[16][17] Сообщество ежегодно организует мероприятия в Соединенных Штатах,[18] Европа[19] и Япония[20] а также небольшие местные мероприятия и конференции.[21][22]

История

Хосе Валим - создатель языка программирования Elixir, исследования и разработки проект Plataformatec. Его цели состояли в том, чтобы обеспечить более высокую расширяемость и производительность виртуальной машины Erlang при сохранении совместимости с экосистемой Erlang.[23][24]

Хосе Валим стремился создать язык программирования для крупномасштабных сайтов и приложений. Будучи разработчиком Ruby, он использовал функции Ruby, Erlang и Clojure для разработки языка с высокой степенью параллелизма и малой задержкой. Эликсир был разработан для обработки больших объемов данных. Его скорость и возможности распространяют Elixir в телекоммуникациях, электронной коммерции и финансах.[25]

12 июля 2018 года Honeypot выпустила мини-документальный фильм об Эликсире.[26]

Управление версиями

Эликсир в основном[27] следует семантическое управление версиями и имеет только 1 мажорную версию без каких-либо планов на секунду. Каждая из дополнительных версий поддерживает определенный диапазон Erlang /OTP версии.[28]

Функции

Примеры

Следующие примеры можно запустить в iex оболочку или сохраните в файле и запустите из командной строки, набрав эликсир <filename>.

Классический Привет, мир пример:

iex>IO.ставит("Привет, мир!")Привет, мир!

Понимания

iex>за п <- [1,2,3,4,5], rem(п, 2) == 1, делать: п*п[1, 9, 25]

Сопоставление с образцом (деструктуризация)

iex>[1, а] = [1, 2]iex>а2iex>{:Ok, [Привет: а]} = {:Ok, [Привет: "Мир"]}iex>а"Мир"

Сопоставление с образцом (несколько предложений)

iex>дело Файл.читать("путь / к / файлу") делатьiex>  {:Ok, содержание} -> IO.ставит("найденный файл: #{содержание}")iex>  {:ошибка, причина} -> IO.ставит("отсутствующий файл: #{причина}")iex>конец

Оператор трубы

iex>"1" |> Нить.to_integer() |> Ядро.*(2)2

Модули

defmodule Весело делать  def выдумать(0), делать: 0  def выдумать(1), делать: 1  def выдумать(п), делать: выдумать(п-2) + выдумать(п-1)  конец

Последовательное порождение тысячи процессов

за число <- 1..1000, делать: порождать fn -> IO.ставит("#{число * 2}") конец

Асинхронное выполнение задачи

задача = Задача.асинхронный fn -> Perform_complex_action() конецother_time_consuming_action()Задача.Ждите задача

Примечательные проекты Elixir

  • Смешивание - это инструмент автоматизации сборки, который предоставляет задачи для создания, компиляции и тестирования проектов на Elixir, управления его зависимостями и многое другое.[32]
  • Феникс - это фреймворк веб-разработки, написанный на Elixir, который реализует серверный контроллер представления модели (MVC ) шаблон.[33]
  • Нервы представляет собой платформу, фреймворк и инструментальную среду для создания встроенных систем и устройств.[17][34]
  • Ecto - оболочка базы данных и генератор запросов для Elixir.[35]

Смотрите также

Рекомендации

  1. ^ «Релизы - эликсир-ланг / эликсир». Получено 3 ноября 2020 - через GitHub.
  2. ^ "elixir / LICENSE at master · elixir-lang / elixir · GitHub". GitHub.
  3. ^ «Самые популярные языки программирования 2018 года - блог Elite Infoworld». 2018-03-30. Получено 2018-05-08.
  4. ^ "Эликсир". Хосе Валим. Получено 2013-02-17.
  5. ^ "Эликсир в PagerDuty". PagerDuty. 2018-06-14. Получено 2019-04-21.
  6. ^ Вишневский, Станислав (6 июля, 2017). «Как Discord масштабировал Эликсир до 5 000 000 одновременных пользователей». Получено 2019-04-21.
  7. ^ Валим, Хосе (23.06.2020). «Эликсир в финтехе с Brex». elixir-lang.github.com. Получено 2020-11-14.
  8. ^ «Что нового в версии 6.0 | Документация». www.emetrotel.com. Получено 2019-04-21.
  9. ^ «Представляем новые инструменты с открытым исходным кодом для сообщества Elixir». Получено 2016-08-01.
  10. ^ «Открытие новых возможностей в Moz Pro с архитектурой без баз данных». Получено 2016-08-01.
  11. ^ "Эликсир". Отчет об отбеливателе. Получено 2019-05-22.
  12. ^ Люсия, Дэйв (24 сентября 2018 г.). «Два года Elixir в The Outline». Получено 2019-05-22.
  13. ^ «Какие большие проекты используют Эликсир?». Получено 2016-08-01.
  14. ^ «Почему Divvy использует Elixir вместо более популярных языков программирования». Получено 2019-04-30.
  15. ^ Операционная система и все сопутствующее программное обеспечение, которое работает на Raspberry Pi от FarmBot: FarmBot / farmbot_os, FarmBot, 28.10.2019, получено 2019-10-29
  16. ^ «Эликсир в производственном интервью: Гарт Хитченс». Получено 2016-08-01.
  17. ^ а б "Nerves - Создавайте и развертывайте надежное встроенное программное обеспечение в Elixir". Получено 2016-08-01.
  18. ^ «ЭликсирКонф». Получено 2018-07-11.
  19. ^ «ЭликсирКонф». Получено 2018-07-11.
  20. ^ "Эрланг и Эликсир Фест". Получено 2019-02-18.
  21. ^ «Эликсир ЛДН». Получено 2018-07-12.
  22. ^ "EMPEX - Конференция Empire State Elixir". Получено 2018-07-12.
  23. ^ Эликсир - современный подход к программированию для виртуальной машины Erlang. Получено 2013-02-17.
  24. ^ Хосе Валим - основной доклад ElixirConf EU 2017. Получено 2017-07-14.
  25. ^ "Behinde the code: The One Who Created Elixir". Получено 2019-11-25.
  26. ^ «Эликсир: мини-документальный фильм». Получено 2018-07-12.
  27. ^ «Императивные задания нарушают работу приложения в обновлении 1.7. · Проблема № 8076 · elixir-lang / elixir». GitHub. Получено 2020-02-10.
  28. ^ Эликсир - это динамический функциональный язык, разработанный для создания масштабируемых и поддерживаемых приложений: elixir-lang / elixir, Эликсир, 2019-04-21, получено 2019-04-21
  29. ^ а б c d е ж "Эликсир". Получено 2014-09-07.
  30. ^ Лодер, Вольфганг (12 мая 2015 г.). Эрланг и Эликсир для императивных программистов. «Глава 16: Концепции структурирования кода», заголовок раздела «Модель действующего лица»: Leanpub. Получено 7 июля 2015.CS1 maint: location (связь)
  31. ^ «Написание напористого кода с помощью Эликсира». Получено 2018-07-05.
  32. ^ "Смешивание". Получено 2019-04-18.
  33. ^ "Обзор". Получено 2019-04-18.
  34. ^ "Начиная". Получено 2019-04-18.
  35. ^ "Начиная". Получено 2019-04-16.

внешняя ссылка