Category: it

Category was added automatically. Read all entries about "it".

о ненависти к монадам

Оригинал взят у juan_gandhi в о ненависти к монадам
Среди программистов особенно популярна идея ненавидеть монады. Почему-то именно монады. Стрелки никто не ненавидит, потому что никто не в состоянии даже вообразить их (как квадратный трехчлен). А вот монады - пожалуйста.

К апликативным функторам тоже маловато претензий, хотя казалось бы. Ведь монада (по верованию хаскельщиков) - это апликативный функтор.

Возможно, дело в слове "функтор". Никто еще не выступал с критикой функторов. Мол, вы, функциональщики, может, и молодцы, но категория функторов не является локально малой. Или, скажем, раз в хаскеле ковариантности нету (да и в джаве ее маловато), то функторы в энтерпрайзе не нужны. Нет, ничо, терпят.

Хотя даже поклонники монад начинают частенько плеваться и ругаться, если им скажешь про сопряженные функторы. И еще что интересно, вот монада; к ней прилагается категория Клейсли; ее любят. А категорию Эйленберга-Мура не любят, и даже над теми, кто ее регулярно но бессознательно использует (username = if (database.get("username") == null) "" else database.get("username")), смеются как над лохами. Хотя эти две категории - просто два крайних объекта в одной душевной категории, образованной этой монадой.

Ну ладно, "простые программисты" (это для нас они простые) у себя в вузе на последнем курсе в Стэнфорде узнают, что функтор - это просто функция, которая беред функцию и возвращает функцию (интересно, что получится, если ее такую применить к самой себе, будет ли она по-прежнему брать функцию и возвращать функцию, или уже сломается?); в результате чего у них половина дизайн патернов превращается в какой-нибудь функтор, чем они и пугают робких выпускников Аризонского Госуниверситета (в Аризоне функторы не водятся).

Но где-то должна быть такая граница, что до нее они не боятся, а после уже боятся.

Или, может, свободная монада как раз будет этакой тайной тропой через границу, отличающую познаваемое от непознаваемого? Хз.

Комонаду же точно почти все боятся. Хотя (открою секрет) у каждой монады есть своя комонада (и у каждой комонады - своя монада).

Тот же Reader паттерн monad - в большинстве текстов про него я вижу не монаду, а комонаду. Традиция, претендующая на звание культурной, что ж.