С чего начать начинающим: Erlang или Elixir?

1,368 views
Skip to first unread message

Anatoly Ostrovsky

unread,
Apr 24, 2017, 12:12:59 PM4/24/17
to Erlang по-русски
Привет всем,

Собственно, вопрос заявлен в теме - с чего начать начинающим: Erlang или Elixir? Или Erlang затем  Elixir? Или можно начать с Elixir, но подтянуть затем Erlang? 

По аналогии с Java или Scala/Groovy/Clojure можно однозначно сказать, что сначала надо освоить Java дабы понимать стэктрейсы, которые будет выдавать любой язык, собираемый под JVM. С яваскриптом ситуация еще более прозаична, так как он является языком и рантаймом одновременно. Elixir вроде и как бы заманивает красивым синтаксисом, но отстутсвие стабильности и обратной совместимости между версиями отбивает любое желание на нем писать системы для долговременной поддержки. С другой стороны, тот же Финикс существенно понижает порог входа в тему OTP с нуля и его вполне реально продать/протолкнуть заказчику/руководителю. 

АО

Max Lapshin

unread,
Apr 24, 2017, 12:14:13 PM4/24/17
to erlang-...@googlegroups.com
Анатолий, вы озвучили примерно все аргументы, которые есть в этом выборе.

Эрланг как язык гораздо проще, он совсем примитивный, но слегка задалбывает этой примитивностью.  Эликсир сильно замороченнее, но транслируется в тот же эрланг.

Продать протолкнуть будет проще эликсир на хайпе.

Максим Павленко

unread,
Apr 24, 2017, 12:14:46 PM4/24/17
to erlang-...@googlegroups.com
Это у эликсира то красивый синтаксис? Вот уж на вкус и цвет...

24 апр. 2017 г. 23:12 пользователь "Anatoly Ostrovsky" <anatolyo...@gmail.com> написал:
--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-russian@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Max Lapshin

unread,
Apr 24, 2017, 12:31:39 PM4/24/17
to erlang-...@googlegroups.com
оператор !  вместо семи вложенных фукнций,  наличие  "#{подстановок}" — этого в эрланге точно не хватает

Anatoly Ostrovsky

unread,
Apr 24, 2017, 7:23:03 PM4/24/17
to Erlang по-русски
Максим,

Вы в одной из своих презентаций сказали для каких приложений однозначно негодится Эрланг. Порог входа для новичка получается крайне высокий. Может только у Хаскелля в этом плане дела обстоят хуже. Так как пишу в мирской жизни CRUD, то просто не вижу иного входа в тему, нежели как через Эликсир/Финикс веб-приложения для бизнеса. Как сказал один мой друг: Мой идеальный язык - Питон, но Вордпресс кормит.


понедельник, 24 апреля 2017 г., 19:14:13 UTC+3 пользователь Max Lapshin написал:

Maxim Pavlenko

unread,
Apr 24, 2017, 11:07:59 PM4/24/17
to erlang-...@googlegroups.com
А я наоборот помню презентацию Максима, где он говорил что запросто
находил себе джуниора с нулевым уровнем эрланга, который через крайне
короткий промежуток времени без проблем начинал править баги во флюссонике

begemot_sun

unread,
Apr 25, 2017, 1:32:34 AM4/25/17
to Erlang по-русски
эликсир крут своей стандартной либой, со всякими протоколами и интерфейсами.
ерланг крут своей простотой. "Ерленг учится за 2 недели -- т.е. за год можно выучить 26 ерленгов"

в еликсире можно отстрелит ногу, т.к. полным полно магии. И новичок в еликсире может такого натворить, не зная внутреннего устройства, что год потом будет расхлебывать.
в противоположность Ерланг - ну очень прост, да там есть всякие parse_transform. Но они не прижились, и редко вы встретите код, который использует широко это фичу.
Еликсир, напротив, поощряет писать сложный код в компайл тайме. Это  его преимущество и недостаток.
Ерланг -- что видно то и делает.
Елискир -- что видно, то делает, но еще делает что-то внутри во время компиляции (возможно далеко не очевидное).
В Ерланг нет принципа умолчания.
В еликсир его полно.

В ерланг есть рекорды.
В еликсире их выпилили - а зря.

В целом по производительности Еранг должен быть чуток быстрее того-же кода на Эликсире, т.к. пишется руками.
Код на эликисире может быть более абстрактным, т.к. уже в сам язык введены достаточно абстрактные конструкции.

Т.о. если начинать простой проект на 5 строк кода -- то ерланг.
Если делать что-то сложное - то ерланг :)
Если делать веб-адмнку - то феникс с эликсиром. :)

В целом выбора какого-то особого нет, это все Ерланг.
Т.о. либы от еликсира можно использовать внутри ерланг кода. То что это будет несколько не красиво -- ну это другой разговор.


понедельник, 24 апреля 2017 г., 19:12:59 UTC+3 пользователь Anatoly Ostrovsky написал:

Yuri Zhloba

unread,
Apr 25, 2017, 2:46:52 AM4/25/17
to erlang-...@googlegroups.com
Начинать можно с любого, изучить придется оба )

Если стоит задача продать технологию начальству, то, лучше эликсир,
там хайпа больше.

Если надо UI с CRUD, то эликсир.


25 апреля 2017 г., 8:32 пользователь begemot_sun <logu...@gmail.com> написал:
> --
> Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения,
> отправьте письмо на электронный адрес
> erlang-russia...@googlegroups.com.
> Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный
> адрес erlang-...@googlegroups.com.
> Чтобы настроить другие параметры, перейдите по ссылке
> https://groups.google.com/d/optout.



--
Yuri Zhloba

skype: yzh44yzh
phone: +375 44 793 33 73

Sergei Krupnov

unread,
Apr 25, 2017, 4:31:03 AM4/25/17
to erlang-...@googlegroups.com
Эликсир позиционируется как новый язык, впитавший достоинства "старинного" Эрланга. По моим наблюдениям, чуть популярнее в США/Сан Франциско: Утомившиеся Ruby-on-Rails-овцы рассматривают его (в сочетании с Фениксом) в качестве альтернативы для себя. На их "вкус и цвет" эликсировский синтаксис, конечно, предпочтительнее. 

По-моему, по возможностям и варазительности языки практически равносильны (Я когда-то изучал Prolog и догадываюсь, откуда у Эрланга такие необычные конструкции. Видимо, авторы взяли готовый прологовский интерпретатор, выбросили его главную, "логическую" часть и приделали свои доработки. Попадись им под руку Бэйсик - и синтаксис мог бы быть совсем  иным, но с теми же возможностями :)). 
Препроцессор может сделать программирование на Эликсире интереснее и продуктивнее, если с умом макросы писать, конечно. [Собственно, весь Эликсир построен на макросах и имеет расширяемый синтаксис. Даже упомянутый "|" - это просто симпатичный макрос :)].

Эликсировский mix приятен и более понятен, чем соответствующие эрланговские тулы - для начинающих типа меня, во всяком случае. 

2017-04-24 9:31 GMT-07:00 Max Lapshin <max.l...@gmail.com>:
оператор !  вместо семи вложенных фукнций,  наличие  "#{подстановок}" — этого в эрланге точно не хватает

--

Anatoly Ostrovsky

unread,
Apr 25, 2017, 5:26:31 AM4/25/17
to Erlang по-русски
Сергей,

Точно подмечено. У Рейловцев будет примерно так: "Эрланг? Фуй. Ну ты и отстой." И это при том, что Рейлс - полное попадалово. 

вторник, 25 апреля 2017 г., 11:31:03 UTC+3 пользователь Cepreu написал:
Эликсир позиционируется как новый язык, впитавший достоинства "старинного" Эрланга. По моим наблюдениям, чуть популярнее в США/Сан Франциско: Утомившиеся Ruby-on-Rails-овцы рассматривают его (в сочетании с Фениксом) в качестве альтернативы для себя. На их "вкус и цвет" эликсировский синтаксис, конечно, предпочтительнее. 

По-моему, по возможностям и варазительности языки практически равносильны (Я когда-то изучал Prolog и догадываюсь, откуда у Эрланга такие необычные конструкции. Видимо, авторы взяли готовый прологовский интерпретатор, выбросили его главную, "логическую" часть и приделали свои доработки. Попадись им под руку Бэйсик - и синтаксис мог бы быть совсем  иным, но с теми же возможностями :)). 
Препроцессор может сделать программирование на Эликсире интереснее и продуктивнее, если с умом макросы писать, конечно. [Собственно, весь Эликсир построен на макросах и имеет расширяемый синтаксис. Даже упомянутый "|" - это просто симпатичный макрос :)].

Эликсировский mix приятен и более понятен, чем соответствующие эрланговские тулы - для начинающих типа меня, во всяком случае. 
2017-04-24 9:31 GMT-07:00 Max Lapshin <max.l...@gmail.com>:
оператор !  вместо семи вложенных фукнций,  наличие  "#{подстановок}" — этого в эрланге точно не хватает

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russia...@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.

Anatoly Ostrovsky

unread,
Apr 25, 2017, 5:42:57 AM4/25/17
to Erlang по-русски
Сам Эрланг может и учится за 2-3 недели, а вот сколько учится OTP? 
У меня вот есть две хорошие книги - Learn you some Haskell и Learn you some Erlang. Вторая - в два раз больше, причем Ерланг там заканчивается примерно на одной четверти. Все остальное - это OTP. 


вторник, 25 апреля 2017 г., 8:32:34 UTC+3 пользователь begemot_sun написал:

Max Lapshin

unread,
Apr 25, 2017, 6:11:47 AM4/25/17
to erlang-...@googlegroups.com
Вот только надо понимать, что OTP — это вылизанная штука, с которой всё пойдет по документации.


Экосистема эликсира, к сожалению, очень и очень сырая. Я делал 4 захода и все разы что-то шло не так, причем во многих случаях только знание эрланга помогало мне понять, почему в этот раз рассыпался инсталятор.


Вот прям только что попробовал и опять не запускается проект на фениксе по их хаутушке:

== Compilation error on file lib/phoenix_ecto/html.ex ==

** (KeyError) key :model not found in: %Phoenix.HTML.Form{data: nil, errors: {{:., [line: 12], [{:changeset, [line: 12], nil}, :errors]}, [line: 12], []}, hidden: [], id: {:name, [line: 10], nil}, impl: Phoenix.HTML.FormData.Ecto.Changeset, index: nil, name: {:name, [line: 11], nil}, options: [], params: %{}, source: {:changeset, [line: 8], nil}}

    (stdlib) :maps.update(:model, {:model, [line: 13], nil}, %Phoenix.HTML.Form{data: nil, errors: {{:., [line: 12], [{:changeset, [line: 12], nil}, :errors]}, [line: 12], []}, hidden: [], id: {:name, [line: 10], nil}, impl: Phoenix.HTML.FormData.Ecto.Changeset, index: nil, name: {:name, [line: 11], nil}, options: [], params: %{}, source: {:changeset, [line: 8], nil}})

    lib/phoenix_html/form.ex:170: anonymous fn/2 in Phoenix.HTML.Form.__struct__/1

    (elixir) lib/enum.ex:1755: Enum."-reduce/3-lists^foldl/2-0-"/3

    expanding struct: Phoenix.HTML.Form.__struct__/1

    lib/phoenix_ecto/html.ex:7: Phoenix.HTML.FormData.Ecto.Changeset.to_form/2


could not compile dependency :phoenix_ecto, "mix compile" failed. You can recompile this dependency with "mix deps.compile phoenix_ecto", update it with "mix deps.update phoenix_ecto" or clean it with "mix deps.clean phoenix_ecto"

Sergey Loguntsov

unread,
Apr 25, 2017, 6:20:28 AM4/25/17
to erlang-...@googlegroups.com

25 апреля 2017 г., 12:42 пользователь Anatoly Ostrovsky <anatolyo...@gmail.com> написал:

Сам Эрланг может и учится за 2-3 недели, а вот сколько учится OTP? 
У меня вот есть две хорошие книги - Learn you some Haskell и Learn you some Erlang. Вторая - в два раз больше, причем Ерланг там заканчивается примерно на одной четверти. Все остальное - это OTP. 

Я не знаю чего там все молятся на этот OTP. Все легко и просто. Основной посыл -- есть процессы, которые следят за процессами. Все остальное обвязка вокруг этого.
OTP -- просто стандартная либа и всё. Ну будешь работать - все изучишь то что нужно.

По части Еликсира, в нем все хорошо, но это похоже на бейсик.
Очень много магии и условностей, а это прямой путь в никуда имхо.
Я посмотрел на Феникс, честно не увидел чего-то такого что нельзя было бы сделать 5 строками кода на ерланге. Вот только теперь там это все размазано в миллионе файлов по всему проекту.
То что Еликсир - для людей сделан, это гуд. 
То что есть абстракции - это тоже гуд.
То что милион условностей в результате мета-программирования --- это не гуд.
Может я мастодонт, но язык должен давать сделать одну вещь одним способом, чтобы было всем понятно.
В Еликсире программист делает свою экосистему, которая позволяет изменить сам язык до неузнаваемости, а потом программировать в рамках это экосистемы.
Проблема этого подхода в том, что поддерживать такую программу сможет только один написавший, всем остальным нужна будет словесная документация.
А как известно лучшая документация - сам  код.

   

Alex Bubnov

unread,
Apr 25, 2017, 6:34:51 PM4/25/17
to Erlang по-русски
>  Erlang затем  Elixir
Именно так. Erlang прост и топорен, как результат - позволяет сосредоточиться на сути дела - выражения, типы данных, процессы, stdlib, OTP. Я бы рекомендовал на нем написать что-нибудь не очень мелкое, чтобы уловить стиль написания кода и основные шероховатости. Потом сосредоточиться на Elixir и разобраться с его фичами, которых нет в Erlang - метапрограммирование, протоколы. Знание Erlang поможет быстрее понять, как это устроено внутри.

>  Финикс существенно понижает порог входа в тему OTP
1/ Phoenix не имеет никакого отношения к OTP. 
2/ Phoenix не понижает пого входа вообще никуда, потому что он абсолютно отвратительно написан. Это очень фреймворк, рельсы вид сбоку - метапрограммирование во все поля. Даже голый Plug, без Phoenix, уже сложнее в деталях, чем голый cowboy - Plug заставляет задумываться, что выполняется на этапе компиляции, а что в рантайме. Аргументы плагов отличный пример - они размазаны по времени компиляции и выполнения, понять что где не очень просто.
Ecto страдает тем же, да еще и гораздо больше напоминает паттерн ActiveRecord, чем DataMapper. 
Моя личная претензия к Phoenix - это очень монолитный фреймворк. Вместо того, чтобы писать маленькие понятные библиотеки и клей, их соединяющий, авторы сделали одну большую кучу и обильно удобрили ее метапрограммированием. Разобраться в коде, созданном mix phoenix.new очень трудно. Отличным контрпримером будет luminus, веб-фреймворк для clojure, где практически нет своего кода - только клей, объединяющий более-менее заменяемые библиотеки.

> вполне реально продать/протолкнуть
Если руководитель подвержен влиянию хайпа. Если же он имеет какой-то опыт работы с Erlang/Elixir, задача может напротив осложниться. 

Anatoly Ostrovsky

unread,
Apr 27, 2017, 10:30:31 AM4/27/17
to Erlang по-русски
> ... потому что он абсолютно отвратительно написан

А на Эликсире все отвратительно пишется. Типичный пример. В 1.4 компилятор плюется, что self - это self(), т.к. скобки - это хорошо. И скобки - это дейтствительно хорошо, ведь они присутствуют везде в хексдоках. Но при этом автор умудряется пять раз поменять стиль написания функций даже на таком коротком примере. С динамическими языками вообще требуется больше дисциплины, а тут наоборот бравируется разгильдяйство по видом экономии символов.

среда, 26 апреля 2017 г., 1:34:51 UTC+3 пользователь Alex Bubnov написал:

Alex Bubnov

unread,
Apr 27, 2017, 6:52:28 PM4/27/17
to Erlang по-русски
> А на Эликсире все отвратительно пишется.
Не согласен. Язык это только инструмент, проблема в людях.
Более того, я считаю, что даже синтаксис Эликсира не так уж плох, кроме нескольких скользких мест, которые не столько даже плохи, сколько не интуитивны. Мне помнится что-то такое в апдейтах списков/мапов и что-то связаное с сахаром для keyword lists.

> Типичный пример.
Этот пример вообще никак не связан с моими словами. Я говорил про бОльшую проблему в подходе Валима со товарищи, которая выглядит как "мы пишем скорее на ruby, чем на clojure", со всем отсюда вытекающим. Плюсы - хорошо выстроенная инфраструктура вокруг одного фреймворка, не худшая культура опенсорса. Минусы - "фреймворка" и "одного". 
В итоге придется много писать самому, выкладывать на гитхаб да еще и пропагандировать свою точку зрения, иначе получится второй Ruby, где кроме рельс жизни нет. Пропагандировать нужно, потому что ситуация вокруг Эрланга сейчас достаточно печальна, чтобы просрать шанс на приток свежей крови было никак нельзя. 

А то о чем ты говоришь, на мой взгляд, мелочи, вообще не заслуживающие озвучивания. Все вопросы со скобками закрываются одним-двумя пунктами стайлгайда, которые просто обязательны, потому что в коде с использованием pipe operator вопрос использования скобок при вызове функций не стоит вообще - они просто есть всегда и везде. Иначе либо код выглядит неоднородно, либо пайпы не работают, вот и вся история. 

Sergey Loguntsov

unread,
Apr 28, 2017, 10:48:07 AM4/28/17
to erlang-...@googlegroups.com

27 апреля 2017 г., 17:30 пользователь Anatoly Ostrovsky <anatolyo...@gmail.com> написал:

бравируется разгильдяйство по видом экономии символов.

Самое разгильдяйство, это пропаганда ~> оператора (не знаю как он по русски звучит) в описании зависимостей, ей богу как школьники.
Зависимости должны быть всегда фиксированы и правится ручками.

В целом Еликсир привнес свежей мысли в Ерланг.
Но вот писать на фениксе и екто не тянет. Может я еще не в теме?


Не согласен. Язык это только инструмент, проблема в людях.
 
Инструмент не должен позволять много, т.к. слабое звено всегда человек.
Я вот иногда думаю, почему проектируют языки исходя из скорости написания, но никак не исходя из "качества поддержки" уже написаного кода.

Alex Bubnov

unread,
Apr 28, 2017, 12:17:10 PM4/28/17
to Erlang по-русски
но никак не исходя из "качества поддержки" уже написаного кода.
Исходя из поддерживаемости кода сделан Go. Great power отобрали, но от great responsibility все равно никуда не делась. Так себе результат.

Алекс

unread,
Apr 29, 2017, 3:55:42 AM4/29/17
to Erlang по-русски
Меня, как человека использующего Phoenix вместо Rails все более чем радует. Цель Phoenix'а перетащить таких как я в мир Elixir/Erlang. В этом отношении меня радует, что я могу использовать библиотеки Erlang в своих проектах на Phoenix. Возможно для человека писавшего всю жизнь на Erlang в Elixir и Phoenix много магии, но для меня как пишущего на Rails около 10 лет там ее практически нет. Так же, мне легче воспринимать синтаксис Elixir чем Erlang. Я считаю, что ребята пишущие Phoenix своей цели достигнут, тем что экосистема развивается очень быстро.  


среда, 26 апреля 2017 г., 1:34:51 UTC+3 пользователь Alex Bubnov написал:
>  Erlang затем  Elixir

Alexander Chemeris

unread,
Apr 29, 2017, 6:10:10 AM4/29/17
to erlang-...@googlegroups.com
2017-04-28 1:52 GMT+03:00 Alex Bubnov <alex.b...@gmail.com>:
> В итоге придется много писать самому, выкладывать на гитхаб да еще и
> пропагандировать свою точку зрения, иначе получится второй Ruby, где кроме
> рельс жизни нет. Пропагандировать нужно, потому что ситуация вокруг Эрланга
> сейчас достаточно печальна, чтобы просрать шанс на приток свежей крови было
> никак нельзя.

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

Я только не очень понимаю зачем "всё писать самому"? Библиотеки Erlang
прекрасно используются в Elixir, так что с точки зрения библиотек -
Elixir это надмножество Erlang. Те, кто жалуются на то, что "всё нужно
писать самому", виимо жалуются на это и в Erlang? В этом случае
популяризация языка как раз поможет.

--
Regards,
Alexander Chemeris.
CTO/Founder, Fairwaves, Inc.
https://fairwaves.co

Alex Bubnov

unread,
Apr 30, 2017, 9:13:38 PM4/30/17
to Erlang по-русски
> зачем "всё писать самому"

Это было про то, что все, что есть в Phoenix не получится использовать в отрыве от него и я не ожидаю активного развития жизни за его пределами. Мне кажется, это в Ruby-комьюнити так принято. 

Вот например, нормального URL роутера с генератором URL нет, кроме как в Phoenix. Как его оттуда выдрать для использования отдельно - неясно. И я не думаю, что это единственный пример такого рода.

Alexander Topolskiy

unread,
May 10, 2017, 9:33:04 AM5/10/17
to Erlang по-русски
По поводу синтаксиса мне кажется проще в этом плане Эрланг - синтаксис совсем простой, очень мало сущностей. Проще, наверное, только КьюБэйсик.

Хотя может быть если сначала бы учил Эликсир - может был бы проще Эликсир.

Хотя все равно - все эти ненужные def и do. А еще атомы с двоеточия. Так же мутабельность данных и оператор фиксации - излишнее усложнение. Вызовы функции без скобок - тоже сомнительная фича.

Dmitry Belyaev

unread,
May 11, 2017, 10:55:51 AM5/11/17
to Alexander Topolskiy, Erlang по-русски
Про rebinding переменных в эликсире я в курсе, про разделение binding/matching (оператор ^) тоже.

А можно про мутабельность даных поподробнее, пожалуйста?

Про нормальные макросы и протоколы я тоже в курсе.

Alexander Topolskiy

unread,
May 11, 2017, 11:03:53 AM5/11/17
to Erlang по-русски, kai....@gmail.com
В Эликсире насколько я знаю есть мутабельные данные, в связи с чем нужно дополнительно запоминать какие данные мутабельны, какие нет.
В Эрланге - by design иммутабельность. Но если очень надо тоже можно сделать, просто это не из коробки.

четверг, 11 мая 2017 г., 17:55:51 UTC+3 пользователь Dmitry Belyaev написал:

Alexander Chemeris

unread,
May 11, 2017, 11:18:06 AM5/11/17
to erlang-...@googlegroups.com, kai....@gmail.com
В Эликсире нет мутабильности. Простой гугл даёт: http://stackoverflow.com/questions/29967086/are-elixir-variables-really-immutable

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-russian@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

Павел Копыченко

unread,
May 11, 2017, 11:39:16 AM5/11/17
to erlang-...@googlegroups.com
погодите а разве у Erlang она есть?

11 мая 2017 г., 21:17 пользователь Alexander Chemeris <alexander...@gmail.com> написал:
В Эликсире нет мутабильности. Простой гугл даёт: http://stackoverflow.com/questions/29967086/are-elixir-variables-really-immutable
2017-05-11 18:03 GMT+03:00 Alexander Topolskiy <kai....@gmail.com>:
В Эликсире насколько я знаю есть мутабельные данные, в связи с чем нужно дополнительно запоминать какие данные мутабельны, какие нет.
В Эрланге - by design иммутабельность. Но если очень надо тоже можно сделать, просто это не из коробки.

четверг, 11 мая 2017 г., 17:55:51 UTC+3 пользователь Dmitry Belyaev написал:
Про rebinding переменных в эликсире я в курсе, про разделение binding/matching (оператор ^) тоже.

А можно про мутабельность даных поподробнее, пожалуйста?

Про нормальные макросы и протоколы я тоже в курсе.

On 10 May 2017 23:33:04 GMT+10:00, Alexander Topolskiy <kai....@gmail.com> wrote:
По поводу синтаксиса мне кажется проще в этом плане Эрланг - синтаксис совсем простой, очень мало сущностей. Проще, наверное, только КьюБэйсик.

Хотя может быть если сначала бы учил Эликсир - может был бы проще Эликсир.

Хотя все равно - все эти ненужные def и do. А еще атомы с двоеточия. Так же мутабельность данных и оператор фиксации - излишнее усложнение. Вызовы функции без скобок - тоже сомнительная фича.

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-...@googlegroups.com.

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
--
Regards,
Alexander Chemeris.
CTO/Founder, Fairwaves, Inc.
https://fairwaves.co

--
Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный адрес erlang-russian@googlegroups.com.
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



--
Монада - это, как учил наш великий учитель, первичная неделимая живая единица, по воле создателя воспринимающая и отражающая в себе весь мир.

Dmitry Belyaev

unread,
May 11, 2017, 5:52:33 PM5/11/17
to Alexander Topolskiy, Erlang по-русски, kai....@gmail.com
Я таким немудреным образом просто попытался заставить проверять информацию. Кто-то ведь может поверить не глядя.

Данные в Эликсире настолько же неизменяемы, как и в Эрланге.

А упомянул я те фичи, которые для меня делают Эликсир привлекательней, чем Эрланг: ребиндинг, макросы, протоколы.
С ними код становится заметно чище.

Yuri Zhloba

unread,
May 12, 2017, 2:01:14 AM5/12/17
to erlang-...@googlegroups.com
ets можно рассматривать как мутабельную структуру данных :)

12 мая 2017 г., 0:52 пользователь Dmitry Belyaev <be.d...@gmail.com> написал:
> --
> Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения,
> отправьте письмо на электронный адрес
> erlang-russia...@googlegroups.com.
> Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный
> адрес erlang-...@googlegroups.com.
> Чтобы настроить другие параметры, перейдите по ссылке
> https://groups.google.com/d/optout.



--

Yuri Zhloba

unread,
May 12, 2017, 2:09:01 AM5/12/17
to erlang-...@googlegroups.com
О, еще ж есть process dictionary -- истинно мутабельная структура данных )

12 мая 2017 г., 9:01 пользователь Yuri Zhloba <yzh4...@gmail.com> написал:

Alexander Chemeris

unread,
May 12, 2017, 2:51:34 AM5/12/17
to erlang-...@googlegroups.com
Не надо грязи! ETS это не структура, это процесс :)

Please excuse typos. Written with a touchscreen keyboard.

--
Regards,
Alexander Chemeris
CTO/Founder Fairwaves, Inc.
https://fairwaves.co


> Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный

> Чтобы настроить другие параметры, перейдите по ссылке
> https://groups.google.com/d/optout.



--
Yuri Zhloba

skype: yzh44yzh
phone: +375 44 793 33 73

--
Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.

Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес erlang-russian+unsubscribe@googlegroups.com.
Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу erlang-russian@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/d/optout.

Yuri Zhloba

unread,
May 12, 2017, 3:04:21 AM5/12/17
to erlang-...@googlegroups.com
Это детали реализации. Абстрактно можно рассматривать как структуру данных.

12 мая 2017 г., 9:51 пользователь Alexander Chemeris
<alexander...@gmail.com> написал:
>> > erlang-russia...@googlegroups.com.
>> > Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный
>> > адрес erlang-...@googlegroups.com.
>> > Чтобы настроить другие параметры, перейдите по ссылке
>> > https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> Yuri Zhloba
>>
>> skype: yzh44yzh
>> phone: +375 44 793 33 73
>>
>> --
>> Вы получили это сообщение, поскольку подписаны на группу Erlang по-русски.
>>
>> Чтобы отменить подписку на эту группу и больше не получать от нее
>> сообщения, отправьте письмо на электронный адрес
>> erlang-russia...@googlegroups.com.
>> Чтобы добавлять сообщения в эту группу, отправьте письмо по адресу
>> erlang-...@googlegroups.com.
>> Настройки подписки и доставки писем: https://groups.google.com/d/optout.
>
> --
> Вы получили это сообщение, поскольку подписаны на группу "Erlang по-русски".
> Чтобы отменить подписку на эту группу и больше не получать от нее сообщения,
> отправьте письмо на электронный адрес
> erlang-russia...@googlegroups.com.
> Чтобы отправлять сообщения в эту группу, отправьте письмо на электронный
> адрес erlang-...@googlegroups.com.

Dmitry Belyaev

unread,
May 12, 2017, 4:52:39 AM5/12/17
to erlang-...@googlegroups.com, Yuri Zhloba
Я по-моему написал "Данные в Эликсире настолько же неизменяемы, как и в Эрланге."

По-моему это не означает, что в Эрланге ничего нельзя изменить.

Да, можно сохранить что-то в ets или process dictionary. Хотя это сложно назвать изменением данных. Потому что, чтобы остальным это "изменение" увидеть, им необходимо explicitly выполнить операцию в как бы монаде IO.

В общем, я не вижу ни одного преимущества оставаться на Эрланге. Интересна еще alpaca, но она настолько сырая, что пользоваться ей для работы ещё стыдно.

Anatoly Ostrovsky

unread,
Jun 5, 2017, 2:51:18 PM6/5/17
to Erlang по-русски
В мое случае все свернулось в Эрланг благодаря вашему курсу.

Плюс вот жду еще начало этих:
 
На фоне такого учебного материала не вижу смысла начинать с Эликсира. 

вторник, 25 апреля 2017 г., 9:46:52 UTC+3 пользователь Yuri Zhloba написал:

Aleksey Grischenko

unread,
Jun 6, 2017, 2:42:04 AM6/6/17
to erlang-...@googlegroups.com

А не поделитесь ссылочкой на курс?


05.06.2017 21:51, Anatoly Ostrovsky пишет:
-- 
Best regards,
Aleksey Grischenko

Anatoly Ostrovsky

unread,
Jun 6, 2017, 5:06:34 AM6/6/17
to Erlang по-русски
https://ru.hexlet.io/courses/erlang_101

Курс отличный!

вторник, 6 июня 2017 г., 9:42:04 UTC+3 пользователь Алексей Грищенко написал:

Денис Фахртдинов

unread,
Jun 6, 2017, 5:29:57 AM6/6/17
to erlang-...@googlegroups.com
http://learnyousomeerlang.com/content

Denis Fakhrtdinov
skype: denis.fakhrtdinov
phone: +375 (29) 918-31-47
m...@shizz.ru

Yuri Zhloba

unread,
Jun 6, 2017, 4:07:06 PM6/6/17
to erlang-...@googlegroups.com
Если речь идет о моем курсе, то на hexlet устаревшая версия.
Актуальная тут https://github.com/yzh44yzh/practical_erlang

6 июня 2017 г., 12:29 пользователь Денис Фахртдинов <m...@shizz.ru> написал:

Anatoly Ostrovsky

unread,
Jun 6, 2017, 5:48:18 PM6/6/17
to Erlang по-русски
Спасибо! Уже клонирую. 

вторник, 6 июня 2017 г., 23:07:06 UTC+3 пользователь Yuri Zhloba написал:
Reply all
Reply to author
Forward
0 new messages