Как стать автором
Обновить

Комментарии 23

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

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

Нет. Kotlin это же JVM.
Erlang
Если вы изначально не пишете на Эрланге, то выбирать его вместо Эликсира не вижу смысла.
Все мы изначально на чём нибудь не пишем.

Clojure

Я так понимаю вы к тому что 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, причём ровно до тех пор, пока не начнёте на нём писать.
Синтаксис на порядок круче на самом деле, посколько позволяет писать МАКРОСЫ В СТИЛЕ ЛИСПА. Это просто бомба, товарищи. Вместо того чтобы ждать от разработчика языка ништяков, можно их самому запилить, и при этом не нужно пересобирать компилятор и возиться с библиотеками, лисповый макрос работает как простая функция, только трансформирует исходный код вместо данных.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории