Pull to refresh

Comments 23

Или возьми на бекенд нормальный компилируемый язык.
Давайте попробуем вместе найти альтернативу Эликсиру :)
Языки заточены под другие задачи, разве нет?

Совершенно другие задачи. Рекомендовать их можно на замену только если совсем не в теме. Даже свифт и котлин для разных задач, как их в кучу можно? :) Это как яву и обжектив си сравнивать, похожи только фигурные скобочки и что-то там про ооп.

Если вы изначально не пишете на Эрланге, то выбирать его вместо Эликсира не вижу смысла.
Все мы изначально на чём нибудь не пишем.
Я так понимаю вы к тому что Elixir ненормальный язык для веб-приложения?
Ну и так же вы наверное про статическую типизацию, Elixir компилируемый язык :)
Такой же компилируемый, как Python и Ruby.

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


Автора языка даже в когнитект приглашали на интервью, если кому интересно, подкаст называется cognicast или как-то так.

А что с производительностью не так? Быстрее только C/C++ будет при условии, что написан правильно

Во-первых нет статической типизации, во-вторых иммутабельность на уровне вм не позволяет использовать быстрые алгоритмы. К примеру, как мы создаем список в яве? Аллоцируем мутабельный массив, пихаем в него данные, возвращаем интерфейс. На эрланг вм так не сделать — нужно аллоцировать каждый элемент отдельно и реализовывать классический односвязный список. В итоге на список из десяти элементов нужно делать десять аллокаций.
Тут нужно написать оговорку о том, что я лично с эрланг вм не работал, просто увлекаюсь дизайном языков и понимаю что на сколько быстро должно работать. Ява при грамотно написанном коде выдает примерно скорость Си, а на эрланг вм этого так просто не достичь.
Ага, вот проверил: https://benchmarksgame.alioth.debian.org/u64q/erlang.html

В среднем Эрланг в 10 раз медленнее Явы.
Объясните пожалуйста в чем смысл хранить структуру пользователя в сессии? По идее если за время сессии что-то поменяться в структуре — нужно будет каждый раз обновлять в самой сессии, либо пользователь будет видеть несвежие данные. Ну и касаемо
if current_user = @conn.assigns[:current_user]

Возможно есть смысл либо написать вспомогательную функцию, где-нибудь во MyAppWeb.ViewHelpers
Видимо, чтобы не делать лишний запрос к БД. С практической точки зрения сомнительное решение, конечно.

Я думаю, в архитектуру действительно хорошо бы вписалась отдельная функция `current_user `.
Что-то очень много в последнее время разговоров об эликсире.
Как рубист и рельсовик просто обязан с ним ознакомиться. Спасибо.
Не пожалеете. На нём как минимум просто приятно писать.
Только для начала нужно осознать одну вещь: Elixir — это не Ruby для BEAM, это в первую очередь Erlang с синтаксисом, отдалённо напоминающем Ruby, причём ровно до тех пор, пока не начнёте на нём писать.
Синтаксис на порядок круче на самом деле, посколько позволяет писать МАКРОСЫ В СТИЛЕ ЛИСПА. Это просто бомба, товарищи. Вместо того чтобы ждать от разработчика языка ништяков, можно их самому запилить, и при этом не нужно пересобирать компилятор и возиться с библиотеками, лисповый макрос работает как простая функция, только трансформирует исходный код вместо данных.
Sign up to leave a comment.

Articles