В прошлой части мы говорили о программировании. Рассмотрели два определения этого понятия и пришли к выводу, что программирование – творческий акт. Попробуем сегодня двигаться в обратном направлении: поговорим об искусстве.

Искусство

Искусство — образное осмысление действительности, процесс или итог выражения внутреннего мира в (художественном) образе, творческое сочетание элементов таким способом, который отражает идеи, чувства или эмоции.

© Wikipedia

Итак, попробуем разложить это определение на составляющие и посмотреть, сможем ли мы уложить в нем понятие “программирование”.

Образное осмысление действительности

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

Какими же образами мыслит программист, когда творит? Вопрос довольно спорный. Но мне кажется, что мышление сущностями может быть ответом на него. Различие в том, что эти образы – сущности в большинстве своем не могут быть объединены ассоциативными связями. Человек, представляющий себе пул соединений с базой данных конечно может представить его в виде некоторого абстрактного хранилища абстрактных соединений в абстрактном мире, но вряд-ли у него возникнет ассоциация, например, с бассейном с дельфинами.

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

Вердикт – данная часть определения справедлива, но лишь отчасти.

Процесс выражения внутреннего мира в (художественном) образе

Внутренний мир человека – это его все. Он определяет во многом то, как человек ведет себя, как он ощущает этот мир, как он мыслит и что он творит. Внутренний мир – это огромное скопление чувств, воспоминаний, мыслей. У одного человека он может быть свалкой, в которой даже он сам не может разобраться. Обычно он и сам это понимает:

Я уже и не знаю, кто я.

У другого – это может быть четко упорядоченная структура, в которой нет места ничему лишнему:

Я знаю кто я, знаю себе цену, знаю чего я хочу. И я этого добиваюсь.

В любом случае, эти два прототипа человека, что называется “в вакууме”. Потому что у каждого человека есть такая область в его внутреннем мире, в которую его заведешь – сразу же утонет. И в то же время – всегда есть твердый островок, который будет его поддерживать.

Вернемся к сути – выразить внутренний, чувственный мир в образе, описанном стихами, красками или сенсором цифровой фотокамеры значительно проще, чем в программном коде. (Опять же, если не прибегать к методам эмо-программирования). С другой стороны, внутренний мир человека, его переживания в этот конкретный день, час, в эту секунду – все это влияет на процесс разработки. Программист, находясь в состоянии душевного подъема, может придумать краткое, лаконичное – “гениальное” решение той или иной проблемы, равно как может решить ее “напролом”, неэффективно и непрофессионально в случае, если находится в состоянии уныния. Поэтому можно говорить о том, что внутренний мир, хоть и не выражается в коде напрямую, более того, описать по коду настроение человека, его писавшего, невозможно (если в нем нет комментариев из разряда “fuck off, bitch”), но судить о его “уравновешенности” (если хотите, устойчивости) – можно.

Что я курил перед тем, как это написал?

Творческое сочетание элементов таким способом, который отражает идеи, чувства или эмоции.

Здесь, на мой взгляд, все прозрачно. Программирование – творческое сочетание элементов – однозначно. Возьмем хотя бы такой его раздел как проектирование пользовательского интерфейса – тут все явно. Если же уйти глубже в логику, отстранившись от пользователя, то все равно придем к тому, что программа – набор элементов. Классы ли это, процедуры и функции, или предикаты – не важно.

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

В любом случае, нас спасает слово “или” в этом формальном определении, и мы можем смело заявлять, что “да, под это оно точно подходит!”

И в итоге..

Мы рассмотрели формальное определение искусства. И надо сказать, не самое многословное. Получили что так или иначе, программирование можно назвать искусством. Обратное не верно (что доказывать смысла, я думаю, не имеет – это и так всем понятно).

Хочу отметить, что все написанное выше – мои личные рассуждения и выводы. Они не являются и не могут являться единственно правильными. Если вы не согласны с каким-либо из суждений или видите в нем противоречие – прошу в комментарии – мне будет интересно обсудить это.