Этот вопрос находится в контексте виртуальной машины Beam и возможностей, которые она предоставляет, а не в общем контексте того, что может делать полный язык Тьюринга. Я хочу потратить некоторое время на изучение чистого Erlang или Elixir. Я понимаю основные различия между ними и склоняюсь к Эликсиру из-за макросов, лучшего синтаксиса и более быстрого развития языка в этот день.
У меня вопрос: если я выберу Elixir, наткнусь ли я на то, что я не могу сделать в нем, но могу сделать в Erlang? Могу ли я использовать с Elixir все OTP, все библиотеки Erlang, перезагрузку кода и т. Д.?
Я не спрашиваю о чьем-то предпочтении между ними; просто факты о возможностях языков. Желательно от того, кто использовал оба в производстве.
Ответы:
Просто предисловие - я использовал только Elixir в производстве, а не Erlang.
Я честно рекомендую Эликсир. Это мое мнение и не обязательно правильное для вас, но ниже я перечислю свои причины, почему.
На самом деле, если у вас возникнут проблемы с этими двумя, вы, вероятно, придете к тому же решению, что Elixir - гораздо лучший язык со всеми функциями Erlang + More. Он тоже растет, я не могу вспомнить точные цифры, но я помню, как читал что-то с веб-сайта Hex (менеджер пакетов) о значительном увеличении загрузок пакетов.
источник
Вы не должны спотыкаться о том, что вы можете сделать в одном из них, чего не можете сделать в другом, поскольку вы можете свободно вызывать код Elixir из Erlang и наоборот. Вы даже можете легко смешивать файлы Erlang и Elixir в одном проекте.
В Эликсире:
в Эрланге:
источник
TL; DR - Начать с Эликсира
У Erlang более крутая кривая обучения по сравнению с Elixir. Как только вы начнете изучать Elixir, вы автоматически начнете изучать Erlang. Следовательно, начните с Эликсира. Эликсир написан на Эрланге и Эликсире. См. Распространение на Github (поскольку в Elixir полно макросов, известных как метапрограммирование).
Вы можете использовать Elixir с Erlang и наоборот, отсюда и полная экосистема Erlang с более чем 20-летними библиотеками.
Подробнее о решениях Erlang
Джо Армстронг (изобретатель Эрланга) блоге об Эликсире
Начните здесь, чтобы узнать об Эликсире - Начало работы
Как только вы почувствуете, что все идет хорошо, продолжайте практиковаться в упражнениях и других ресурсах .
источник
Есть несколько вещей. Я думаю, вы не можете сделать рекурсивную анонимную функцию в Elixir. Честно говоря, это то, что за 8+ лет работы с Erlang, я не думаю, что мне когда-либо приходилось делать, и если бы я сделал это, это можно было бы легко сделать другим способом. Вероятно, есть еще несколько подобных вещей, которые, честно говоря, вы можете игнорировать.
В общем, что касается вещей, которые волнуют большинство людей, все, что вы можете делать в Erlang, вы можете делать в Elixir и наоборот. Сообщество на стороне Elixir кажется более активным, поэтому я предлагаю начать с него. Я недавно перешел с Erlang на Elixir, и за исключением нескольких необычных вещей в собственном я могу сказать, что это довольно простой переход.
источник