Если б мишки были пчёлами
Забавная всё-таки штука — программирование!
Лет пятнадцать назад разработчик пишет красивую, изящную и компактную программу. Последователи добавляют ещё один режим вызова, изменяющий соглашение о передаче параметров. Ещё через пяток лет добавляется третий режим с обходной точкой входа и взятием необходимых данных из файла.
Программа умеет работать как в интерактивном, так и в пакетном режиме, при этом может оставаться реентерабельной, не выполняя реинициализацию при повторном входе, и вызывается в разных режимах из нескольких прикладных пакетов.
И вот модифицированный код составляет уже 40% текста программы.
Настаёт момент, когда авторский алгоритм перестаёт работать для определённой комбинации параметров. Причём определяется это не тестированием, а эмпирически — по жалобам клиентов. Изрядно поломав голову и отладчик, приходится в очередной раз крушить остатки стройной концепции и дописывать условную принудительную реинициализацию переменных посреди красивого авторского кода.
Что делает программа? Фигню — печатает PIN-конверты для банковских карточек. Обычная такая банковская программа, написанная не самыми бездарными программерами. У нас тут ещё миллион таких.
Как там у классиков? «Если бы строители строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию».
Верю!