Чи є речі, які може зробити Еліксир, що Ерланг не може, чи навпаки?


102

Це питання знаходиться в контексті випромінювання В. М. та можливостей, які він надає, а не в загальному контексті того, що може зробити повна мова Тюрінга. Я хочу вкласти трохи часу, щоб вивчити чистий Ерланг, або Еліксир. Я отримую основні відмінності між цими двома, і я схиляюся до Еліксиру через макросів, кращого синтаксису та швидшого розвитку мови в цей день.

Моє запитання: якщо я виберу Еліксир, я натрапляю на те, що я не можу зробити в ньому, але можу зробити в Ерланге? Чи можу я використовувати всі матеріали OTP, усі бібліотеки Erlang, перезавантаження коду тощо тощо за допомогою Elixir?

Я не прошу когось переваги між двома; лише факти про можливості мов. Переважно від того, хто використовував обидва у виробництві.


19
@hedgehog не думка, факт. питання "Моє запитання: якщо я виберу Elixir, чи натрапляю на щось, чого я не можу зробити, але можу зробити в Erlang? Чи можу я використовувати всі ETP-матеріали, усі бібліотеки Erlang, перезавантаження коду тощо"? і відповідь ґрунтується на фактах, а не на думці.
Saša Šijak

4
На це питання відповідь: все, що можна зробити в Ерланге, можливо в Еліксирі. Але заголовок підказує, що питання полягає в тому, в що варто вкласти гроші, і тут відповідь - це "залежить". Що ти хочеш робити? Для веб-додатків Elixir набагато приємніше, оскільки він був створений для вирішення цієї проблеми. Для деяких видів розподілених систем ви можете знайти простоту Erlang superior. Відсутність функцій часто є хорошою справою. Тільки навчання Erlang допоможе вам зосередитись на найважливішому біті: OTP.
tkowal

2
@ SašaŠijak Я змінив назву питання, щоб IMO краще відобразив, про що йдеться - поверніться, якщо ви не згодні.
Paweł Obrok

2
@ PawełObrok чудова редакція, вона правильно підсумує те, що мені було цікаво знати
Saša Šijak

3
кожного разу, коли я задаю такі запитання, я отримую -10 downvotes
arisalexis

Відповіді:


37

Тільки до передмови - я використовував Elixir у виробництві, а не Erlang.

Я б чесно рекомендував Elixir. Це моя думка і не обов'язково для вас правильна, але нижче я перерахую свої причини.

  1. Продуктивність: я походжу з тла Ruby / Rails, тому синтаксис та стиль Elixir - це те, що мені було дуже знайоме. Один з головних факторів, який допомагає мені визначити, чи потрібно вивчати мову, чи наскільки я результативним я можу бути в ній - головним чином, чому я обрав Рубі. Еліксир той самий. Я можу працювати в ньому так само швидко, як і Рубі, з усіма додатковими перевагами одночасності та відповідності шаблонів.
  2. Ерланг: Оскільки Elixir побудований на вершині Erlang і збирається до erlang та променевої частини vm, ви маєте доступ до кожного модуля та пакету erlang. Тож якщо ви переживаєте за використання еліксиру та пропустіть усі функції Erlang, вам цього не повинно бути. У Elixir навіть є власні реалізації більшості великих функцій Erlang / OTP, таких як GenServer, GenEvent тощо.
  3. Спільнота / Ресурси: Спільнота Elixir дійсно чудова. Немічний канал - це дійсно популярний і чудовий спосіб отримати відповіді на запитання для початківців. На мові вже написано кілька справді хороших книг (Програмування Еліксир 1.2 - Дейв Томас, автор Ruby Pickaxe), які роблять мову дуже просто.

Дійсно, якщо у вас з цим двома проблемами, ви, мабуть, прийдете до того ж рішення, що Еліксир - це набагато приємніша мова з усіма особливостями Erlang + More. Це також зростає, я не можу згадати точні цифри, але я пам’ятаю, що читав щось із веб-сайту Hex (менеджер пакунків) про значне збільшення завантажень пакетів.


14
Elixir не збирається до Erlang, він збирається до BEAM-коду. Еліксир НЕ схожий на coffeescript та ін. ін. що просто пишуть JS.
Пітер Р

64

Не варто натрапляти на те, що ви можете зробити в тому, що не можете в іншому, оскільки ви можете вільно зателефонувати за кодом Elixir з Ерланг і навпаки. Ви навіть можете легко змішувати файли Erlang та Elixir в одному проекті.

В еліксирі:

:erlang_module.erlang_function(args)

в Ерланге:

'Elixir.ElixirModule':elixir_function(args)

2
Іноді це може бути досить складно, коли будувати випуски з вкладеними залежностями чи іншими дуже специфічними випадками, але я думаю, що це, безумовно, правильна відповідь. ПРИМІТКА . Якщо працювати на машинах з обмеженими ресурсами, додавання залежностей Elixir та Elixir до випуску може бути важчим з точки зору пам'яті. Тож якщо я не помиляюся, іноді може статися, що дотримання чистого Erlang може принести користь для заощадження кількох мегабайт пам'яті, що полегшить уникнення збоїв, коли для розширення VM не залишиться місця.
1818 року

37

TL; DR - Почніть з еліксиру

Ерланг має більш круту криву навчання порівняно з Еліксиром. Як тільки ви почнете вивчати Еліксир, ви автоматично почнете вивчати Ерланг. Отже, почніть з Еліксиру. Еліксир написаний на Ерланг та Еліксир. Дивіться дистрибуцію на Github (оскільки Elixir повна макросів, мета-програмування). Розподіл коду проекту Elixir

Ви можете використовувати Elixir з Erlang і навпаки, отже, повна екосистема Erlang з 20+ років бібліотек.

Більше інформації від Erlang Solutions

Продуктивність Elixir "поза коробкою" досягається сильним фокусом на інструментальності та зручністю у вираженні маніпулювання даними. Дизайн системи такий же як у Elixir та Erlang, але Elixir видаляє багато кодового коду і його легше розширити. Видалення котла підвищує продуктивність і дозволяє програмістам швидше отримувати зворотній зв'язок - важливо, коли ви хочете якнайшвидше запустити свій продукт на ринок. Менше котлован також робить щасливими розробниками, а щасливі розробники - невдало продуктивними розробниками.

Повідомлення про Еліксира в блозі Джо Армстронга (винахідник Ерланг)

Почніть тут, щоб дізнатися про Еліксир - Початок роботи

Як тільки ви відчуваєте, що все йде добре, пройдіться шляхом тренувань на екзеризмі та інших ресурсах .


3

Є кілька речей. Я думаю, ви не можете зробити рекурсивну анонсну функцію в Elixir. Тепер, щоб бути справедливим, це те, що за 8+ років Ерланг я не думаю, що мені ніколи цього не потрібно було робити, і якщо я це зробив, це було б легко зробити інакше. Напевно, є кілька інших подібних речей, які цілком чесно можна ігнорувати.

Взагалі, для речей, які більшість людей хвилює все, що ви можете зробити в Ерланге, ви можете робити в Еліксирі і навпаки. Громада з боку Еліксиру, здається, є більш активною, тому я б запропонував розпочати там. Нещодавно я перейшов з Ерланга в Еліксир, і за винятком кількох химерних речей у "Правильному", можу сказати, що це досить простий перехід

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.