Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, PSV100, Вы писали:
PSV>>Здравствуйте, os24ever, Вы писали:
O>>>▪ Отказались от ссылок в глобальной области видимости (Erlang, Scala — наконец-то!!) и т.д...
PSV>>Правда инструментарий не очень удобный для такого эффекта. В Erlang-е, всё-таки, народу не нравится одни и те же данные проталкивать через параметры функций — придумали обходной манёвр — словари процессов, что снижает визуальный эффект абсолютной идеальности.
К>Можно подробней про "народу не нравится"? Интересно былоб с примерами кода, мне вот даже не вспоминается проектов где словари процессов пользовались бы, тогда как "протягивание" состояния встречается практически везде в Эрланге.
К>И что, кстати, за визуальные эффекты?
Здесь не критика Эрланга, как таковая. Речь о том, что если сейчас сделать абсолютно идеальный язык, где все данные передаются только через параметры функций, то это решение не удовлетворило бы всех потребностей у абсолютно всех пользователей языка/платформы. Как ни старайся, но будет необходимость в каких-то альтернативных механизмах, как те же словари процессов. Под "снижением визуального эффекта абсолютной идеальности" я имел в виду то, что такие словари процессов дают некие побочные эффекты, усложняют понимание кода, уменьшают "чистоту функций". Поэтому словари направо и налево и на каждый чих не используют.
Кстати, тот же Хики в своей Кложуре (о нём ты недавно у меня спрашивал) тоже учёл этот момент. Он не стал запрещать "глобальные переменные", наоборот, развил этот механизм, добавив контролируемый доступ и возможность переопределения в зависимости от контекста, давая, таким образом, возможность иногда не проталкивать данные через функции. Подробнее можно глянуть
здесь (смотреть про Dynamic vars).