Про лень

Submitted by 0xd34df00d on Wed, 08/10/2011 - 02:05

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

Лениться нужно. Лень писать правила по удалению софтины из системы и правила обновления? Отлично! Изобретаем пакетные менеджеры, dpkg там всякие, ∃M∃RG∃, которые следят за тем, что и куда ставится, и сами за нами подотрут, а в ебилдах будет только минимально нужный набор правил. То, что под ШINDOWS это реализуемо через ту еще задницу — проблемы шиндошса, а не девелоперов под него, но это уже совсем другой вопрос.

Лень каждый раз руками дергать Init(T*)/Release(T*)? Отлично! Изобретаем конструкторы с деструкторами. Лень следить за памятью ну совсем руками? Изобретаем shared_ptr'ы и используем их. Лень писать num.Add(5)? Изобретаем переопределение операторов. Лень дублировать код? Изобретаем темплейты и прочие дженерики. Лень, в конце концов, писать везде std::map<std::string, std::vector<int> >::const_iterator и описывать типы функций? Выдумываем Хиндли-Милнера и пишем на удобных языках. Ну или, в худшем случае, придумываем auto или var и пишем на менее удобных языках.

Лениться — это хорошо и здорово. Лениться полезно и прекрасно, если это позволяет придумывать новые, более удобные и эффективные инструменты, позволяющие быть более продуктивным.

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