(Untitled)

Feb 13, 2015 06:28

Что-то я, граждане, в очередной раз не понимаю, зачем нужен Erlang. Т.е очередная моя история с ним, кажется, близка к фейлу в стиле вступления презентации про опердень ( Read more... )

Leave a comment

Comments 153

rumataestor February 13 2015, 04:51:48 UTC
Всё можно описать формально декларативно. Проблема на чём это описать.

Reply

dmzlj February 13 2015, 05:06:07 UTC
Ну когда я говорю "может быть описана" это значит, что я знаю,
как именно описать именно это.

Reply

grey_kristy February 13 2015, 07:58:56 UTC
Так на чем все таки можно удобно декларативно описывать интерфейсы?

Reply

dmzlj February 13 2015, 08:43:18 UTC
Какие интерфейсы?

Вот формальное описание одной из частей интерфейса (CLI): https://gist.github.com/voidlizard/9d2baec9cefd5e6495c1

WEB этому ээээ изоморфен, что ли? Короче, из этих атомов можно описать вебные сессии, добавляется только одна новая сущность.

Потом описать маппинг команд и параметров на вызовы бизнес-логики. Валидация может быть сделана автоматически.

Модель CWMP неизоморфна модели, описанной в этом DSL, но понятно, как сделать адаптер.

Reply


provokatorz February 13 2015, 05:46:18 UTC
>>> очередная моя история с ним, кажется, близка к фейлу

>>> Дело, конечно, не в эрланге, а в том, что бы понимать, для каких задач его использовать, а для каких --- нет.

>>> Взять вот текущую систему.

Ну че, логично и обычно. Взяли новый инструмент, не туда сунули, а вывод что старый привычный инструмент няшка и самый крутой.

Reply

thesz February 13 2015, 08:05:33 UTC
"Новый"?

Вы с историей презентации про опердень знакомы?

Reply

dmzlj February 13 2015, 08:33:04 UTC
Какой он новый? Мы на нём с 2008-го года пишем всякое.
Но чем дальше, тем меньше я в нём профита вижу.

Reply


levgem February 13 2015, 06:46:36 UTC
Эрланг - это не про удобство разработки. Это про удобство разбирательства на продакшне: как и почему оно не работает.

У нас сейчас пошло много поддержки кастомеров и если бы была говножабка или С++, то ценники на поддержку и время реакции было бы во много раз выше.

Reply

dmzlj February 13 2015, 08:34:18 UTC
Ну короче это мой очередной фейл.Когда у тебя миллионы устройств, надо делать так,
что бы не возникала потребность разбираться с ними в продакшене т.к. это не работает.

План "Б" есть, но блин я не знаю, как его продавать. Эрланг-то легко продать.

Reply


b00ter February 13 2015, 07:54:16 UTC
Ну вот у тебя есть success story с трекерами. Наверное, там все-таки можно.
Есть fail story с роутером. По непонятным пока причинам.

КМК дело не в инструменте, все-таки, а в людях, которые его использует. У одних получается, у других клин. И кодогенерация не панацея. Хотя с ней, наверное, проще, нежели без нее.

Reply

dmzlj February 13 2015, 08:36:00 UTC
Ну конечно, в людях. Я опять пустил процесс на самотёк, т.к. задача-то уныловата - с одной стороны, непонятно что вообще нужно (требований нет вообще), с другой строны она выглядит примитивной и скучной - дернули по вебу, ты утилитки по настройке подергал. Итог, короче, немного предсказуем уже полгода, чуда не произошло.

Reply

dmzlj February 13 2015, 08:43:38 UTC
У меня еще три фейл стори с оперденью.

Reply

b00ter February 13 2015, 08:53:34 UTC
C оперденью тоже фейлы людские. Там все доходило до момента, когда нужно было брать и ибошить - и тут все сломались. Если бы взяли какое Дельфи, прости госпади, результат был такой же, только отложенный, а сначала бы пер энтузиазм за счет короткой петли обратной связи ("я тут компонентов на формочку набросал и оно работает").

Reply


grey_kristy February 13 2015, 08:02:42 UTC
А альтернатива то какая? Scala с аккой?

То что можно на C написать систему с акторами и message passing... Ну можно конечно, Erlang ведь на C написан. Но зачем же это писать самому второй раз?

Reply

thesz February 13 2015, 08:07:02 UTC
Cloud Haskell, for one. Это, если что, Erlang 2.0 - исправлены текущие ошибки семантики Эрланга.

Reply

lionet February 13 2015, 08:51:28 UTC
Быстрый вопрос: можно ли там эволюционировать кластер постепенно, нода за нодой? Чтобы менялись сообщения, их типы, а система оставалась на плаву без необходимости перекомпилировать и рестартовать вообще всё?

Reply

dmzlj February 13 2015, 09:01:46 UTC
Быстрый ответ (не глядя) --- скорее всего нет. Но есть мнение, что вся эта вот машинерия с кластерами, обновлениями и т.п. должна быть вне языка. Что бы ноды кластера можно было
писать уже на чём угодно. Привязка к определенному языку это ошибка.

Reply


Leave a comment

Up