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

Искусство программирования и неизменность состояний

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

Искусство программирования состоит в способности не создавать лишних состояний и в умении управлять необходимыми. А вот уменьшать количество имеющихся в программе состояний - это сложная и грязная работа, слабо оцениваемая коллегами, их наплодившими.

Анекдот на десерт.
- Василий Иванович, а в чём разница между необходимым и достаточным условиями?
- Смотри, Петька, если отправить тебя на курсы по основам Java, сможешь ты потом программы писать?
- Смогу, конечно.
- Вот это необходимое условие.
- А достаточное?
- Теперь представь, что зайдет к тебе Фурманов и посмотрит, что ты там напрограммировал...
- Ой, не надо, небось перепишет все нахрен!
- Вот это, Петька, достаточное условие.