Mar. 10th, 2017

jamhed: (Default)
Весьма интересны организации постулирующие равенство прав (и обязанностей) всех участников при весьма очевидном фактическом неравенстве. Например, Советский Союз республик свободных. Или вот теперь Российская Федерация гордых и независимых. Или Евросоюз. Если задуматься, то в основе таких объединений лежит всё та же унылая коммунистическая идея: всё отнять и поделить, с очевидной динамикой развития. Весьма любопытно как такое формальное равенство уживается в головах с другим очевидным неравенством: собственно с какого бодуна Эстония (с населением 1 млн. человек, половина из которых выехала на заработки) имеет такие-же права в Евросоюзе как и ФРГ?
jamhed: (Default)
В языке Erlang всё что имеет состояние становится процессом при помощи посылки сообщений и тасованию контекста внутри процесса как дополнительного аргумента (что в точности делается при объявлении gen_server). Таким образом правильная система на языке Erlang должна иметь много таких процессов-серверов, что весьма легко проверить. Если процессов мало (и/или контексты весьма объемны), то такая система написана скорее всего неправильно, и причин тому несколько:

1. Далеко не всем очевидно вот так вот сразу что gen_server (и аналоги) это состояние (а не сервер типа apache), и другого способа работать с состоянием в Erlang нет.
2. Объявление gen_server весьма многословно (с другой стороны всегда можно наклепать свою light-версию)
3. Декомпозиция предметной области на процессы-сообщения требует некоторого размышления.

Отдельно стоит упомянуть что таким же способом (применением процессов) достигается устойчивость к ошибкам: возможные ошибки изолируются в процессе, который дохнет и перезапускается в работоспособном виде. И если вместо этого в коде наличествуют try/catch, case Term of, и прочая ересь -- см. выше.

То есть все эти рекламируемые свойства Erlang-системы (отказоустойчивость, распределённость, и пр.) достигаются только тогда, когда система написана так, как того язык подсказывает, а не переложением Java/Python/PHP на Erlang. По счастью писать на Erlang в другом стиле жутко неудобно, но с другой стороны упорные и неленивые программисты тоже никуда не деваются.

July 2017

S M T W T F S
      1
23 45678
9101112 13 1415
1617 1819 20 2122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 23rd, 2017 02:42 am
Powered by Dreamwidth Studios