Комментарии 23
Или возьми на бекенд нормальный компилируемый язык.
Давайте попробуем вместе найти альтернативу Эликсиру :)
Я так понимаю вы к тому что Elixir ненормальный язык для веб-приложения?
Ну и так же вы наверное про статическую типизацию, Elixir компилируемый язык :)
Ну и так же вы наверное про статическую типизацию, Elixir компилируемый язык :)
Эликсир — шикарный язык для всяких мессенджеров и банков, где не нужна высокая производительность, а нужна максимальная надежность. Этакий кложур для эрланг вм, только скобочек поменьше. На замену эрлангу, с которого песок уже давно.
Автора языка даже в когнитект приглашали на интервью, если кому интересно, подкаст называется cognicast или как-то так.
А что с производительностью не так? Быстрее только C/C++ будет при условии, что написан правильно
Во-первых нет статической типизации, во-вторых иммутабельность на уровне вм не позволяет использовать быстрые алгоритмы. К примеру, как мы создаем список в яве? Аллоцируем мутабельный массив, пихаем в него данные, возвращаем интерфейс. На эрланг вм так не сделать — нужно аллоцировать каждый элемент отдельно и реализовывать классический односвязный список. В итоге на список из десяти элементов нужно делать десять аллокаций.
Тут нужно написать оговорку о том, что я лично с эрланг вм не работал, просто увлекаюсь дизайном языков и понимаю что на сколько быстро должно работать. Ява при грамотно написанном коде выдает примерно скорость Си, а на эрланг вм этого так просто не достичь.
Ага, вот проверил: https://benchmarksgame.alioth.debian.org/u64q/erlang.html
В среднем Эрланг в 10 раз медленнее Явы.
В среднем Эрланг в 10 раз медленнее Явы.
Объясните пожалуйста в чем смысл хранить структуру пользователя в сессии? По идее если за время сессии что-то поменяться в структуре — нужно будет каждый раз обновлять в самой сессии, либо пользователь будет видеть несвежие данные. Ну и касаемо
Возможно есть смысл либо написать вспомогательную функцию, где-нибудь во MyAppWeb.ViewHelpers
if current_user = @conn.assigns[:current_user]
Возможно есть смысл либо написать вспомогательную функцию, где-нибудь во MyAppWeb.ViewHelpers
Что-то очень много в последнее время разговоров об эликсире.
Как рубист и рельсовик просто обязан с ним ознакомиться. Спасибо.
Как рубист и рельсовик просто обязан с ним ознакомиться. Спасибо.
Не пожалеете. На нём как минимум просто приятно писать.
Только для начала нужно осознать одну вещь: Elixir — это не Ruby для BEAM, это в первую очередь Erlang с синтаксисом, отдалённо напоминающем Ruby, причём ровно до тех пор, пока не начнёте на нём писать.
Синтаксис на порядок круче на самом деле, посколько позволяет писать МАКРОСЫ В СТИЛЕ ЛИСПА. Это просто бомба, товарищи. Вместо того чтобы ждать от разработчика языка ништяков, можно их самому запилить, и при этом не нужно пересобирать компилятор и возиться с библиотеками, лисповый макрос работает как простая функция, только трансформирует исходный код вместо данных.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Начни изучать Elixir прямо сейчас! Перевод всей серии статей готов