
Dmitry
12.12.2016
15:18:51
Вышел релиз кстати distillery,я ещё не смотрел, надо статью переписывать походу)

Ivan
12.12.2016
15:18:55
я вот ноду первый раз деплоил столько же сколько феникс
по времени
только ноду по итогу упаковал в докер

Google

Dmitry
12.12.2016
15:19:17
Самый простой деплой - .net mvc на azure

Ivan
12.12.2016
15:19:17
а на фениксе наваял кап скрипт который ее заставляет на проде компилиться

Yuriy
12.12.2016
15:19:21
Я бы еще Plug pipeline-based девелопмент как плюс вынес, это ново

Dmitry
12.12.2016
15:19:28
Все остальное - боль по сравнению с этим

Ivan
12.12.2016
15:19:39
ну с дотнетай не работал не знаю

Aldar
12.12.2016
15:19:54

Dmitry ?
12.12.2016
15:20:29
Но ведь можно и по старинке

Ivan
12.12.2016
15:21:53
а шо @DenisIzmaylov ты пришел всех взбаламошил и убежал
тебе по что инфа то нужна была
:(

Denis
12.12.2016
15:36:31
Да понять, стоит ли инвестировать в это направление :) или наслаждаться Node.js и дальше

Roman
12.12.2016
15:36:40
стоит

Google

Ivan
12.12.2016
15:36:51
ну я вот пробовал в ноду
и вот не наслаждался прям
прям вот там не наслаждение было

Denis
12.12.2016
15:37:02
Пока не увидел и продолжаю искать моменты, где это окупается

Ivan
12.12.2016
15:37:10
а с эликсиром как то по другому
эт я с личной стороны говорю

kana
12.12.2016
15:37:21
самая главная проблема node.js стоить после точки

Denis
12.12.2016
15:37:37

Ivan
12.12.2016
15:37:52
возможно
я вот не научился видимо)

Denis
12.12.2016
15:38:15
А вот так, чтобы какие-то объективные плюсы эликсира пока где-то скрываются

Ivan
12.12.2016
15:38:32
производительность?

Denis
12.12.2016
15:38:34

Ivan
12.12.2016
15:38:41
а шо где когда

Denis
12.12.2016
15:39:04
производительность?
Она вроде и в Golang хороша ) но может быть, было бы здорово какие-то замеры, бенчмарки посмотреть

Ivan
12.12.2016
15:39:15
ну мы то сравниваем с нодой)

Ilya
12.12.2016
15:39:20
объективных плюсов много, но если есть большая экпертиза по ноде, переползать смысла нет, естественно
разве что посмотреть в образовательных целях

Ivan
12.12.2016
15:39:54
ну вообще конечно язык под задачи нужен

Denis
12.12.2016
15:40:00

Google

Ivan
12.12.2016
15:40:03
так что тут сложно тоже прям сравнивать

Denis
12.12.2016
15:40:07
Многопоточный?

kana
12.12.2016
15:40:07
в байткод

Ivan
12.12.2016
15:40:07
эликсир да
да

Denis
12.12.2016
15:40:17
Байткод как Java?

Ivan
12.12.2016
15:40:20
да
только BEAM
эрланговская VM
во многом из за нее эликсир классный

Dmitry
12.12.2016
15:47:06
Эликсир более многопоточный чем java, и даже чем го
А Акка это сложно, скала и хрен выучишь

Yuriy
12.12.2016
15:48:33
Per-process gc
вместо stop-the-world gc в jvm

Dmitry
12.12.2016
15:53:13
В го тоже синхронный
Гц

Yuriy
12.12.2016
15:54:14
Давайте пока без го, только нод
Когда будет совсем скучно, набросим в конфу гоферов и понеслась

Ivan
12.12.2016
15:55:34
все туда просто толпой припремся

Denis
12.12.2016
15:56:40
Если что, Максим Лапшин, основатель Erlyvideo, который на Erlang написан сейчас в @nodejs_ru очень широко расписал про Erlang

Google

Ivan
12.12.2016
15:56:57
а
Лапшин
он умеет
был недавно на ElixirMeetup в мск
там он тоже широко расписывал про эрланг

Dmitry
12.12.2016
15:57:46
У него фамилия говорящая какая то

Admin
ERROR: S client not available

Ivan
12.12.2016
16:01:01
зашел я в @nodejs_ru
ебать там наваливают

Alexander
12.12.2016
16:26:07
+ hot code replacement
+ OTP и буллет-пруф библиотеки из экосистемы Erlang (для http есть модуль в стандартной поставке, но требует некоторых церемоний при работе из Elixir)
+ FP и прозрачные транзишены стейта системы

Rumata
12.12.2016
16:28:02
ох тут живно
хули расписывал про эрланг, узкий кейс у него был для его задач исключительно, написал на нем, выстрелил. Молодец
че сказать

Ivan
12.12.2016
16:31:39
а вот какие еще есть кейсы по эликисиру эрлангу
которые выстрелят?

Vladimir
12.12.2016
16:35:05

abc
12.12.2016
16:43:31
кстати кто-то реально пробовал hot code replacement на продакшн ?

Eugene
12.12.2016
16:43:54
джо армстронг
думаю реально пробовал

Google

Eugene
12.12.2016
16:44:04
на продакшн

abc
12.12.2016
16:45:47
я про именно на elixir

kana
12.12.2016
16:46:15
а в чем будет разница?

abc
12.12.2016
16:46:39
в подводных камнях конечно же


Alexander
12.12.2016
20:01:21
У нас настроен деплой с апгрейдом на нескольких проектах, подводные камни в сложных изменениях структуры приложения, например переименование модуля, когда под его именем зареган процесс, или добавление новых чайлдов в супервизор, тогда мы обычный деплой катим, с кастомными relup-ами ещё не заморачивались.
У нас (в aviasales.ru) на Elixir сейчас крутятся в проде
* злой агрегатор статистики, который жуёт все результаты поисков юзеров из rabbitmq и складывает разную стату в базу (он заменил собой ~30 воркер процессов Ruby, которые не справлялись с нагрузкой, и не выжирает и 3 ядер)
* генератор статики на Phoenix, с кастомной оберткой и кастомными модельками
* сервис апишек для кучи виджетов по найденным ценам, ходит в параллель к различным источникам, мержит и отдаёт json
* бот подписок на дешевые билеты для slack и viber
Кейсы разные и везде Elixir показал себя хорошо или очень хорошо :) деплой приделали сами, отправили пару PR в пару библиотек, но в общем все что нужно было, уже стабильно работает.
Ещё мы хантим https://aviasales.recruitee.com/


Rumata
12.12.2016
20:35:16
молодцы
а теперь танцуй

Dmitry
12.12.2016
20:41:49

Aldar
12.12.2016
20:43:55


Taras ?
13.12.2016
00:32:32
ну так есть erlang. Или там тоже нет?
именно, и отлично работает
к примеру то, что лично я туплю как сделать post-запрос с помощью :httpc.request —- не делает :httpc.request говном, это я краб ?
как-то так это все надо понимать
Итого, сводка по Elixir.
Плюс.
+ хайлоад на слабом железе
+ время отклика низкое
+ Параллельный флоу автоматически
+ протоколы, макросы, паттерн матчинг
+ immutability на уровне языка
+ Макросы, протоколы, акторы
+ шедулер считает редукции у каждого процесса и не допускает долгой работы без переключения, хотя это скорее преимущества beam а не самого языка
+ в elixir очень вкусная стандартная либа
+ и все эти ex_doc, которые запускают тесты прямо из документации, это просто круть
+ встроенная Мнезия как альтернатива редису
+ в эликсире крутой пайп оператор!
+ компилируется в байт-код BEAM
+ Plug pipeline-based девелопмент как плюс
Минусы:
+ незрелость экосистемы
- В стандартной библиотеке Elixir нет HTTP-клиента
- с пакетами всё плохо в элексире – говно пакеты, в основном
- проблемы с Deploy в Phoenix
- Часто добавляешь пакет и он не работает в разных environments, прямо бомбит
- часто нет док/они не соответствуют реальности
- люди тесты мало пишут → исходники в качестве документации
- Короче с инфраструктурой почти как в жс
- пробовал феникс на хероку задеплоить, так и не справился
да нет там разницы - http-клиент в эрланге или в эликсире - двуеточие не сложно прописать же :httpc.request
С нодой надо научиться работать, когда научишься – всё обычно становится, как с тем же Golang, PHP, dotNET или Java.
?
опишу пример с моей практики —
когда я парсил города с вк апи на php -
городов получилось 1,7 лям с копейкой (понятное дело, оказалось что части городов нет)
сейчас парсинг делается на elixir(ой, с обращением к модулю эрланга - ведь в эликсире нет http-клиента, беда какая - двуеточие лишнее поставить ннадо) -
и городов парсится строго 2 137 834, независимо от языка
как говорится - почувствуйте разницу php и elixir
хотя да, костыли иногда помогают ходить, но бегать с ними - не то же, что без них