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 в другом стиле жутко неудобно, но с другой стороны упорные и неленивые программисты тоже никуда не деваются.

September 2017

S M T W T F S
     1 2
3 4 56 78 9
10111213 14 1516
171819 20212223
24252627282930

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 21st, 2017 06:49 am
Powered by Dreamwidth Studios