Программирование по-прежнему может быть в радость

Чтение Hacker News иногда вынуждает сказать вслух: программирование по-прежнему может быть в радость.
Да, на работе, где нужно производить ценность для бизнеса, экономика hand-written кода действительно изменилась. Но это работа. Работа — не жизнь. Самые громкие голоса в интернете обычно самые грустные и легко заражающие.
Вот маленький противовес потоку отчаяния: программирование по выходным — это весело. Сейчас изучается game development. Текущий уровень мастерства — багованный клон Breakout с ужасной collision detection. Пишется вручную потому, что это нравится. Над проблемами ломаешься потому, что их решение делает счастливым. То, что Claude мог бы разобраться с этим с первой попытки, — это не суть дела.
Ещё отвлекается от этого "гейма" на изучение случайных тем программирования. На прошлых выходных исследовалось, как далеко можно зайти с type safety в Java, используя идеи из зависимо-типизированных языков, таких как Agda. Никакого практического смысла в этом нет. Это просто "интересный способ мышления о конкретной проблеме". Может быть, когда-нибудь пригодится на работе. А может, и нет. Это было сделано потому, что исследование было веселым[0].
Пару недель назад — recursion schemes. Технически это было не весело. Часы биться головой о стену. И даже в конце так и не стало ясно, в чём ценность этих идей[1]. Но известно, что множество самых красивых идей в программировании становятся понятны только спустя годы размышлений. Вот почему целые работы пишут про Monoids. Может быть, когда-нибудь найдётся задача, к которой это применимо. Может быть, нет. Это было сделано потому, что понимание сложных вещей приносит награду.
Пишется это потому, что ощущается всё более странное социальное давление. Как будто не "положено" больше получать удовольствие. Как будто нет смысла и радости в том, чтобы продолжать расти как человек. Чем больше этого потока отчаяния потребляешь, тем больше он начинает заражать. "Нет смысла", — начинаешь думать сам. Но это исчезает, как только отключишься.
Получать удовольствие от вещей — это нормально[2]. Для этого не требуется никакого экономического оправдания.
Сноски:
- [0] Потратьте время на понимание
Fin. Это красиво. - [1] Пока ещё не доходил, но цель изучения этого — дать себе ещё один инструмент для алгебраического рассуждения о корректности программ (тема из моей книги!)
- [2] Также есть огромное удовольствие в "vibe-coding". Есть набор приложений, в коде которых никогда не заглядывал. Подозреваю, что если бы заглянул, ужаснулся бы. Программирование таким способом тоже весело. Часто — чрезвычайно. Просто по-своему.