Задумывались ли когда-нибудь, о том, что вами движет в процессе написания программ? Следуете ли вы изученным инструкциями и правилам или полагаетесь исключительно на возможности своего сознания? Предлагаем поговорить в этой статье о том, является программирование творчеством или нет.
Начнем с того, что дадим неформальные определения.
Творчество – процесс деятельности, ограниченный лишь границами сознания творца, в результате которого создается новый уникальный объект.
Инструкция – это набор правил, устанавливающий порядок выполнения или осуществления чего-либо.
Итак, при творческом подходе, человек может использовать абсолютно все, что лишь может себе вообразить для достижения своей цели. А при следовании законам «строгих правил», он ограничен тем, что уже было исследовано до него. Например, художник или писатель – классические примеры творческой работы. А вот тот же физик, математик использует в своей работе строгие правила доказательства теорем, законов - может ли быть творцом? Ответ неоднозначный.
ЧТО МОЖНО СКАЗАТЬ О РАБОТЕ ПРОГРАММИСТА?
С одной стороны, работа программиста творческая, поскольку очень часто ограничена лишь конкретным заданием, а вот сама реализация и само видение подходов разработки "лежит полностью на плечах" исполнителя. ТЗ (техническое задание) даже для больших проектов иногда составляются чересчур поверхностно, что в итоге приводит к тому, что разработчик сам должен будет фантазировать и применять все "творческие уголки" своего мозга для проектирования системы.
Частенько бывает, что такое "творчество" перерастает в "боль в спине" самих же программистов. Чрезмерное злоупотребление творчеством приводит к тому, что в итоге появляются совершенно странные компоненты системы: начиная от классов с выстроенной как попало иерархией, заканчивая "километровыми" методами, о реальной нужности которых никто даже не задумывался, и безумным «копипастом» кода.
Более опытный читатель скажет, что это скорее плохой стиль программирования (или результат плохого обучения), который никакого отношения не имеет к творчеству. И в каком-то смысле он будет прав. Но все же, как раз таки в этом и есть элементы творчества, а именно в смысле НЕ следования стандартам и устоявшимся правилам при написании кода, а в импровизации при выполнении задачи?
Если исходить из вышесказанного, то можно подумать, что творчество в программировании – лишнее и, вообще, лишь негативно влияет на качество и сложность дальнейшей поддержки созданного продукта. Примерно такое мнение бытует и на просторах интернета. И в какой-то мере оно действительно описывает реальное положение дел, ведь посудите сами: как можно написать четко структурированный правильный код, не ограничивая себя ни в чем и не следуя устоявшимся правилам хорошего тона?
Начиная с названий переменных, классов и заканчивая организацией компонентов программы – всему в программировании есть определенные стандарты, которые делают код удобочитаемым и легко поддерживаемым в дальнейшем. Поэтому, если исходить из этой точки зрения, программирование как раз таки является набором строгих правил, который, помимо самого сознания программиста, ограничено еще и кучей внешних, устоявшихся в данном комьюнити правил.
ПРОГРАММИРОВАНИЕ – ПРОСТОР ДЛЯ ТВОРЧЕСТВА?
А в итоге мы имеем вот что: программирование – это творчество, которое базируется на строгих правилах. И это, пожалуй, то, что делает само программирование такой необычной, такой притягательной наукой. Можно сказать, что программирование сродни прикладному творчеству. То есть оно является не бессмысленным процессом в материальном мире, а очень даже применимым и нужным, впрочем, это даже объяснять не надо в век компьютерных технологий.
Давайте писать грамотный код, следуя всем стандартам и придерживаясь всех правил хорошего тона, но там, где можно, будем применять немного творчества, потому что такой подход не просто "даст нам цену" на просторах рынка IT, но позволяет каждый день делать что-то новое и интересное.
Олег Топорков