Я не очень понимаю, почему кооперативную многопоточность считают «будущим» чего-либо. Для меня она тоже around since forever, взять twisted для примера, не говоря уже о том, чтобы выйти за пределы Python-экосистемы. Она действительно даёт возможность ускорить обработку запросов, иногда просто драматически. Но зато она сложна для понимания человеком, и ни промисы, ни async/await тут не помогут. И сто́ит чуть-чуть оступиться − и у тебя в проекте блокировка, которую ты не знаешь, как отладить.
Как по мне, так ASGI и Channels − это не тупик, а как раз шаг в правильном направлении, к компромису между производительностью программиста и машины.
Построение абстракций ООП на основе сущностей реального мира — одно из самых частых заблуждений в ООП
Почему это − заблуждение, кто ещё приходил к этому выводу, что можно почитать на эту тему?
Я, например, ни разу не видел учебника, который не использовал бы метафор из реального мира, чтобы объяснить принципы ООП. Википедия говорит о “things found in the real world”. В общем, если это и заблуждение, то оно слишком распространено, чтобы отметать его так запросто, вы не думаете?
Как я понял предмет, монада − это такой способ объединения функций в цепочку, когда мы их входной и выходной типы данных продвигаем до такого типа, который будет обратно совместим с ними обоими. Для этого, естественно, нам нужны две дополнительные функции.
И правильно понимаю, что в первых двух примерах достаточно расширить структуру входных параметров
Тогда мы не сможем переиспользовать код f1, f2 и f3, а ведь это было нашей главной задачей.
Я ничего не имею против математического языка, но на Хабр захожу, чтобы получить объяснение чего-то обычным языком, in layman's terms. Видимо, я не одинок.
Вы меня уделали. У меня в голове Банда четырёх была почему-то связана с ростом популярности Java, и я до сих пор не удосужился сличить даты. Позор мне.
Гамма работал в IBM, занимался VisualAge, Eclipse и JDT. Видимо, оттуда мои ассоциации с Java. Хотя было это, конечно, добрый десяток лет спустя.
Джонсон грокал смолток, остальные трое − джависты. Влиссидис имел бэкграунд в C++, но, наверное, больше работал с джавой на момент написания книги.
Я очень часто вижу, как программисты пытаются обособить себя от своего основного ЯП. С одной стороны, через академизацию своего опыта, мол, мы не программисты, мы computer scientists, мы не изучаем языки, а создаём их. С другой стороны, через ремесленничество − best tool for the job и прочие максимы. Но на практике я ни разу не наблюдал, чтобы кому-то удалось превзойти то форматирующее влияние, которое оказывает на способ мышления его основной инструмент. Одни мыслят категориями статически типизированных языков в динамически типизированных, другие − наоборот. Третьи плодят миллионы классов, ну и т. д.
Для понимания собственно ООП вполне хватает здравого смысла и среднеобывательского словарного запаса.
Вот паттерны − это специфическая вещь. Начиная с того, что книжка Банды Четырёх − это продукт борьбы (как минимум троих) авторов с особенностями и недостатками языка Java. Соответственно, понятна она только в этом контексте.
Как по мне, так ASGI и Channels − это не тупик, а как раз шаг в правильном направлении, к компромису между производительностью программиста и машины.
Почему это − заблуждение, кто ещё приходил к этому выводу, что можно почитать на эту тему?
Я, например, ни разу не видел учебника, который не использовал бы метафор из реального мира, чтобы объяснить принципы ООП. Википедия говорит о “things found in the real world”. В общем, если это и заблуждение, то оно слишком распространено, чтобы отметать его так запросто, вы не думаете?
Тогда мы не сможем переиспользовать код f1, f2 и f3, а ведь это было нашей главной задачей.
Гамма работал в IBM, занимался VisualAge, Eclipse и JDT. Видимо, оттуда мои ассоциации с Java. Хотя было это, конечно, добрый десяток лет спустя.
Я очень часто вижу, как программисты пытаются обособить себя от своего основного ЯП. С одной стороны, через академизацию своего опыта, мол, мы не программисты, мы computer scientists, мы не изучаем языки, а создаём их. С другой стороны, через ремесленничество − best tool for the job и прочие максимы. Но на практике я ни разу не наблюдал, чтобы кому-то удалось превзойти то форматирующее влияние, которое оказывает на способ мышления его основной инструмент. Одни мыслят категориями статически типизированных языков в динамически типизированных, другие − наоборот. Третьи плодят миллионы классов, ну и т. д.
Вот паттерны − это специфическая вещь. Начиная с того, что книжка Банды Четырёх − это продукт борьбы (как минимум троих) авторов с особенностями и недостатками языка Java. Соответственно, понятна она только в этом контексте.