Крокфорд о монадах и гонадах


Если вам интересно, что такое монады. Дуг Крокфорд, автор книги «JavaScript The Good Parts», снялся в видео, объясняющем функциональное программирование и монады в целом.

В этом вечернем выступлении с YUIConf 2012 Дуглас Крокфорд обсуждает одну из самых неуловимых концепций программирования: монады. Цитировать:

В дополнение к тому, что это начало полезно, оно также проклято, и проклятие монады в том, что как только вы получаете прозрение, как только вы понимаете — «о, вот что это такое» — вы теряете способность объяснять это кому-либо.

В этом выступлении Крокфорд пытается разрушить давнее проклятие учебников по монадам, объясняя концепцию и применение монад таким образом, который действительно понятен аудитории.

По дороге он обсуждает первоклассные функции и роль JavaScript в их распространении. Он также сравнивает подход программиста к функциям и подход математика. Он также обсуждает, как преобразовать JavaScript в чисто функциональный язык и почему вы этого не хотите.

Вторая половина видео, кажется, расходится на параллелизм и асинхронное программирование, что также стоит посмотреть, чтобы понять, почему потоки — зло. Однако поворот в том, что обещания — это монады.

Посмотрите это видео, оно может длиться час, но оно расширит ваше понимание:

Краткая версия сообщения заключается в том, что монады — это способ обойти неизменность, которая является центральным принципом функционального программирования. Это означает, что в языке, который имеет изменяемые структуры данных и функции, монады на самом деле не актуальны, и вам не нужно о них беспокоиться.

И не упустите драгоценный камень с самого начала:

Фортран был разработан до того, как были изобретены строчные буквы, поэтому все в верхнем регистре.

и чудесное оскорбление по поводу окраски синтаксиса —

«… чтобы детям было легче программировать … все другого цвета. Для некоторых людей это имеет большое значение. Я считаю, что это мало что значит для меня, потому что я больше взрослый вверх.»

и на Java:

«Иногда кажется, что Java была оптимизирована для создания исключений с нулевым указателем».


Добавить комментарий