18+
реклама
18+
Бургер менюБургер меню

Сергей Дегтярев – Экономический субъект. Том III. Цифровая экономика (страница 5)

18

Проблема единства этики и эстетики при таком подходе... исчезла. Как бессмысленная. Как вопрос о том, сколько ангелов может уместиться на кончике иглы. Но исчезновение проблемы — это вам не решение! Это капитуляция второго порядка — ещё более позорная, чем кантианская. Кант хотя бы честно сказал: не могу, признаю своё бессилие. А постмодернизм делает вид, что ему просто неинтересно, что он выше этого.

Искали, искали, искали... Но искали не там.

Аристотель искал в добродетельном человеке — но оставил нам лишь портрет, не дав метода. Кант искал в трансцендентальной способности суждения — но развёл этику и эстетику по разным комнатам, запретив им встречаться. Гегель искал в абсолютном духе — но склеил то, что не склеивается, и склейка развалилась. Ницше искал в сверхчеловеке — но взорвал всё, включая самого сверхчеловека. Модернисты искали в гении-творце — но вынесли этику за скобки, оставив форму без содержания. Постмодернисты искали в ироническом наблюдателе — но растворили всё в игре, где нет ни добра, ни зла, ни красоты, ни уродства, ни даже самого наблюдателя.

И мы остались с вопросом. С тысячелетним, изъезженным, проклятым вопросом: как соединить добро и красоту? Как сделать так, чтобы правильное было прекрасным, а прекрасное — правильным? Где тот метод, тот алгоритм, та отладка, которая способна привести в лад этику и эстетику?

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

Мы на пороге. Зайдём ли?

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

А ведь ответ — вот он. Прямо перед нами. В пыли мастерской. В свечении экрана. В терпеливом движении рук, которые пробуют, ошибаются, откатываются и пробуют снова.

Единство этики и эстетики — это не свойство человека. И не свойство объекта. Не добродетель души и не качество вещи. Это свойство процесса. Процесса отладки.

Что такое этика, если снять с неё тысячелетние напластования проповедей, запретов и императивов? Этика — это действие, возвращающее лад. Не наказание, ибо наказание не возвращает, а карает. Не поощрение, ибо поощрение не восстанавливает, а стимулирует. Не долг, который давит на плечи тяжестью невыполненного обещания. Не императив, который командует, не спрашивая согласия. Этика — это восстановление порядка в ситуации, где порядок нарушен. То есть, позвольте мне сказать прямо, — отладка.

Что такое эстетика, если снять с неё налёт таинственности и музейной пыли? Эстетика — это восприятие лада. Когда механизм работает без сбоев — слух улавливает ровное, успокаивающее гудение. Когда форма и функция совпадают до неразличимости — взгляд находит покой в этой полноте. Когда материал и метод находятся в согласии, когда инструмент понимает заготовку, а заготовка не сопротивляется инструменту, — тело чувствует гармонию. Когда ничего не скрипит, не заедает, не выпадает, не хрустит под пальцами. То есть — отлаженное состояние.

И вот главное, то, что не могли увидеть философы, потому что слишком высоко парили над землёй. Отладка соединяет этику и эстетику в одном действии. В одном-единственном, конкретном, рукотворном действии. Потому что отсюда следует утверждение, которое для непосвящённого звучит странно, почти еретически. Но вы, слушающие, уже не непосвящённые. Вы прошли путь от станка до кода, от лада до отладки.

Красивый код — этичен.

Да, именно так. Утверждение, которое режет слух тем, кто привык отделять этику от эстетики, а программирование — от жизни, а технику — от человечности. Только странно, спешу вас уверить. Не ложно. Странно — как странно выглядит истина, когда она впервые входит в комнату, где все привыкли к полумраку лжи.

Что же такое красивый код? Поясню, ибо это важно.

Красивый код — понятен. Во всяком случае, он понятнее кода некрасивого. В этом, и только в этом, заключена его красота. Не в отступах, хотя и в них тоже. Не в том, нравится ли он глазу программиста-эстета. В том, что его можно легко прочитать. Войти в его логику, как входят в хорошо освещённую комнату. Проследить за ходом мысли, как прослеживают русло реки от истока до устья. Увидеть, что происходит от первой строки до последней, — без чёрной магии, без сюрпризов, без стыдливо спрятанных костылей.

А понятный код — этичен. Потому что код пишут не для себя. Или не только для себя. Код пишут для других. Для того неведомого путника, который будет его читать — через день, через месяц, через год. Для того бедного отладчика, который будет в нём копаться в три часа ночи, пытаясь понять, почему упал сервер. Для того, кто придёт после — и скажет либо «спасибо, всё ясно», либо, скрежеща зубами, «кто же это написал?». Или для себя, но через полгода — а это, позвольте вам напомнить, уже совсем другой человек. Который не помнит, почему здесь написано именно так, а не иначе. Который смотрит на свой собственный код, как на древний папирус, и шепчет: «Что за бред?»

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

Что же говорит о нас красивый код? О, он говорит многое, и первое, самое главное — признание. Красивый код торжественно признаёт: я не один. Читатель есть. Этот незримый, но неизбежный спутник, который придёт после меня — или даже вместо меня. Читатель будет мучиться с моим кодом, как путник, бредущий через бурелом. Читатель будет тратить своё время — время, которое он мог бы провести с семьёй, или за чашкой кофе, или просто в блаженном ничегонеделании. Читатель может возненавидеть меня, о, как легко и праведно возненавидеть, если я сделаю его жизнь хотя бы на йоту сложнее, чем она могла бы быть.

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

Но не обольщайтесь, слушающие. Красивый код — это не всегда лёгкий код. Не всегда тот, который написался в полчаса под весёлую музыку. Бывает, как часто бывает, что сама по себе задача сложна, как гордиев узел. Алгоритм запутан, словно лесная чаща. Данные приходят неизвестно откуда — из трёх разных систем, ни одна из которых не документирована. Требования противоречивы, как показания свидетелей на допросе.

Но красивый код, и в этом его величие, не добавляет к этой уже существующей сложности свою — лишнюю, ненужную, паразитическую. Он не множит сущности без необходимости — запомните это, ибо это золотое правило. Не плодит лишних переменных, которые будут путаться под ногами. Не строит лабиринтов из вложенных условий, где теряется и сам автор. Он — регулярен. Если есть правило — оно соблюдается везде, от первой строки до последней, без капризов и исключений ради исключений. Если есть паттерн — он повторяется с аккуратной предсказуемостью, как рефрен в песне. Если есть исключение — а они бывают, куда без них — оно явно отмечено, подсвечено, снабжено объяснением, чтобы читатель не гадал: это ошибка или замысел?

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

Другой, доведись ему разбирать этот код, не может в него погрузиться. Другой тратит часы — драгоценные, невозвратные часы! — на то, чтобы понять, что автор мог бы объяснить одной строчкой комментария или одним осмысленным именем переменной. Другой проклинает автора, сидя в тёмной комнате, потому что переменная названа просто «x», а функция разрослась до трёхсот строк, как борода до пояса, а логика перепрыгивает с места на место, как блоха на собаке, не давая ухватить нить.

И знаете, что говорит этот некрасивый код, этот немой свидетель чужого равнодушия? Он говорит, и слова его леденят душу: «Мне плевать на тебя. Я сделал так, как мне удобно, в ту минуту, когда мне было лень думать. Разбирайся сам. Твоя боль — не моя проблема. Твоё время — не моя забота. Ты сам как-нибудь... выкручивайся».