Эликсир (программирование language)

редактировать
Язык программирования, работающий на виртуальной машине Erlang
Elixir
Язык программирования Эликсир
Paradigm multi-paradigm : функциональный, параллельный, распределенный, ориентированный на процесс
Впервые появился2011 г.; 9 лет назад (2011 г.)
Стабильный выпуск 1.11.1 / 16 октября 2020 г.; 15 дней назад (2020-10-16)
Дисциплина набора текста динамический, сильный, утка
Платформа Erlang
Лицензия Лицензия Apache 2.0
Расширения имен файлов .ex,.exs
Веб-сайтelixir-lang.org
Под влиянием
Clojure, Erlang, Ruby
Influenced
LFE

Elixir - это функциональный, параллельный, универсальный язык программирования, который работает на BEAM виртуальной машине, используемой для реализации языка программирования Erlang. Elixir построен на основе Erlang и использует те же абстракции для создания распределенных, отказоустойчивых приложений. Elixir также предоставляет эффективные инструменты и расширяемый дизайн. Последнее поддерживается с помощью метапрограммирования во время компиляции с макросами и полиморфизмом через протоколы.

Elixir используется такими компаниями, как PagerDuty, Discord, E-MetroTel, Pinterest, Moz, Bleacher Report, The Outline, Inverse, Divvy, FarmBot и для построения встроенных систем. Сообщество ежегодно организует мероприятия в США, Европе и Японии, а также небольшие местные мероприятия и конференции.

Содержание
  • 1 История
  • 2 Управление версиями
  • 3 Возможности
  • 4 Примеры
  • 5 Примечательные проекты Elixir
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
История

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

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

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

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

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

Features
Примеры

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

Classic Hello world пример:

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

Пояснения

iex>для n <- [1,2,3,4,5], rem(n, 2) == 1, do: n*n [1, 9, 25]

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

iex>[1, a] = [1, 2] iex>a 2 iex>{: ok, [hello: a] } = {: ok, [hello: "world"]} iex>a "world"

Поиск по шаблону (несколько предложений)

iex>case File.read ("путь / к / файлу") do iex>{: ok, contents} ->IO.puts ("found file: # {contents}") iex>{: error, cause} ->IO.puts ("missing file: # {cause}") iex>end

Оператор конвейера

iex>"1" |>String.to_integer () |>Ядро. * (2) 2

Модули

defmodule Fun do def fib (0), do: 0 def fib ( 1), do: 1 def fib (n), do: fib (n-2) + fib (n-1) end

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

для num <- 1..1000, do: spawn fn ->IO.puts ("# {num * 2} ") end

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

task = Task.async fn ->perform_complex_action () end other_time_consuming_action () Task.await task
Интересные проекты Elixir
  • Mix - это инструмент автоматизации сборки, который предоставляет задачи для создания, компиляции и тестирования проектов Elixir, управления его зависимостями и т. д.
  • Phoenix - веб-разработчик Платформа pment, написанная на Elixir, которая реализует шаблон Model View Controller на стороне сервера (MVC ).
  • - это платформа, среда и инструментальная среда для создания встроенных систем и устройств.
  • - оболочка базы данных и генератор запросов для Elixir.
См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-19 06:58:59
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте