Редкие языки: Elixir
Здравствуйте!
В комментариях к статье «Редкие языки: Erlang» я обещал рассказать о Elixir. Докладываю.
Что это, Бэрримор?
Elixir построен на виртуальной машине Erlang — BEAM. Это значит, что он может все, что может Erlang, и немного больше. Так, написанные на Erlang библиотеки можно без переделки использовать в коде на Elixir.
Elixir намного младше Erlang — он появился в 2012 году, а создал его Хосе Валим, бывший разработчик Ruby on Rails. Кроме того, Elixir испытал влияние Clojure.
Синтаксис Elixir близок к синтаксису Ruby. Да вы сами посмотрите:
Erlang
io:format("Hello World!~n", []).
Elixir
IO.puts "Hello World!"
Для новичка синтаксис Elixir может быть понятнее Erlang. Хотя не факт, конечно — угадайте, что делает код:
for n <- [1,2,3,4,5], rem(n,2) ==1, do: n*n
Кроме того, для Elixir появилось намного больше библиотек — не так много, как для Go, но тоже внушительно: https://github.com/h4cc/awesome-elixir
Список компаний, использующих Elixir в работе: https://github.com/doomspork/elixir-companies
Знаковые проекты
Ecto
Так сложилось, что для Erlang не было толкового ORM. Проект Chicago Boss развивал свой ORM — boss_db, но он был далек от идеала. Для проектов с интенсивной работой с базами данных приходилось изобретать свои решения.
Ecto появился с Elixir и предоставляет четыре больших модуля для работы с базами данных в Elixir: репозитории, схемы, миграции и язык запросов. Без появления Ecto было бы невозможным появление самого знакового проекта Elixir — Phoenix.
Посмотреть еще: https://github.com/elixir-lang/ecto
Phoenix
Erlang был недружелюбным языком для большого веба, несмотря на количество библиотек для работы с HTTP. Проекты вроде Chigago Boss не сильно помогали — писать веб на Erlang решались только сильные духом.
Phoenix сделал Elixir одним из решений для написания крупных веб-приложений. Конечно, он не такой изящный, как Ruby on Rails, в силу своих ограничений, но это был шаг вперед.
При этом Phoenix использует всю мощь платформы Erlang — изоляцию памяти потоков, мощную многопоточность, метапрограммирование.
Посмотреть еще: https://github.com/phoenixframework/phoenix
Узнать больше
Официальная документация: http://elixir-lang.org/docs.html
Создатель Erlang Джо Армстронг о Elixir: http://joearms.github.io/2013/05/31/a-week-with-elixir.html
Книги: http://elixir-lang.org/learning.html
Есть что добавить? Пишите в комментарии.
Нередкие языки: профессия «Веб-разработчик».