Творческая работа
Сценаристы объявили забастовку, требуя защиты от «ИИ». Тысячи художников подписали открытые письма в протест против «ИИ». Столько исков от творческих сообществ против ИИ, что существует целый сайт, посвящённый их отслеживанию. Популярные YouTuberы абсолютно ненавидят это. Если они ещё и музыканты, то просто ОЧЕНЬ ненавидят. Во всех творческих индустриях идёт согласованное движение отторжения этой технологии.
Однако среди творческих профессий программисты — почти уникальное исключение. Опытные разработчики всё ещё убеждены, что применение «ИИ» в программировании вполне приемлемо. Мы, похоже, это ненавидим, и это делает нас несчастными, видим, что это делает с нашей индустрией, но всё равно его используем.
Большую часть оправданий этого примирения сводят к одному: программирование — не искусство. Если инструмент может выполнить работу, а сама работа чисто функциональна, то какое это имеет значение?
Значение имеет. Потому что мы не должны использовать ИИ для создания искусства, а программирование — это искусство.
Искусство может быть обыденным
Некоторые говорят, что программы не могут быть искусством, потому что программы функциональны, а не выразительны. Программы — обыденны, тогда как искусство трансцендентно.
Это основано на искажённом понимании того, что такое искусство на самом деле.
В работе Джона Бергера «Способы видения» такой тип искажения называется мистификацией. Его пример одновременно забавен и поучителен. Рекомендую прочитать его полностью.
Суть же вот в чём: Бергер критикует цветистую прозу историка искусства, описывающего заказной групповой портрет, с фразами вроде «тонкие модуляции глубокого, светящегося чёрного» и «гармоничное слияние». Портрет описывается как возвышенный, в почти экстатических выражениях.
Бергер раскрывает реальность: старому бедному художнику нужна была работа, и какие-то чиновники решили, что было бы хорошо заказать официальный портрет. Они заплатили деньги бедному старику, он его нарисовал, и у них появилась картина. Хорошо исполненный портрет группы людей. Красивый, даже. Но это была работа, заказанная для довольно прозаической цели, и она отлично эту цель выполнила. Это не был и не является божественной реликвией.
Культурно мы склонны мистифицировать живопись, скульптуру, кино, музыку. Наделяем их «тонкими модуляциями». Игнорируем их функциональные аспекты — хотим украшения, развлечения, отвлечения — и сосредоточиваемся на их эмоциональном воздействии.
Не поймите неправильно: я обожаю хорошую эстетическую философию. Я считаю замечательным действительно вникнуть в нашу реакцию на произведения искусства и попытаться глубже понять нашу культуру и самих себя через анализ медиа. Нужно делать это ещё больше.
Но это не означает, что создание таких работ — мистическое дело, которое должно почитаться выше любого другого труда.
Особенно если учесть другие виды труда, смежные, но культурно не столь чтимые. Мы мистифицируем работу романиста, но презираем работу журналиста. В реальности функциональная проза журналиста не менее важна и достойна не меньшего уважения.
Хотя журналисты могут быть далеки от возвышенной сферы, в которой в нашем коллективном воображении обитают романисты, они всё же получают больше уважения — и больше мистификации — чем скромные копирайтеры. Но между «романистом» и «копирайтером» нет трансцендентального различия; многие навыки совпадают, а различие — всего лишь случайность коммерции и возможностей.
На самом деле, многие известные писатели прошли обе роли. Это не случайность! Профессиональная работа со словами, даже (может быть, особенно) обыденные слова, — отличная практика для работы со словами в более чисто художественном контексте, потому что даже обыденное творчество остаётся творчеством.
Код может быть прекрасным
Тысячу интернет-лет назад, когда я был подростком, я называл себя «поэтом кода». За это подвергался беспощадному насмешкам — сейчас это назвали бы «кринжем», а в то время называли «претенциозностью».
Я поддался давлению сверстников, убрал это из подписи электронной почты и биографии. Хотя я всё ещё верил в параллели, я принял, что социально сравнение кода с поэзией или вообще с искусством — это глупое занятие.
Однако в душе я никогда не отказался от этой идеи.
То, чем я наиболее известен — изобретение Deferred — был специально эстетическим ответом на утомительность передачи параметров callback и errback каждому удалённому вызову процедур в приложении RPC клиент/сервер. Эти два callback отлично выполняли работу. Но они были уродливы и неудобны в использовании.
Deferred — это намеренный стих об асинхронном выполнении задач, с тщательным вниманием к эстетике проблемы и опыту использования. Он оказался влиятельным именно благодаря этому фокусу на эстетику.
Я не хочу переоценивать красоту или глубину этого небольшого вклада, равно как и его долговечность. То, что стихотворение существует, не означает, что это великое стихотворение, только что это стихотворение.
Наша эстетическая культура вокруг программ больше похожа на народный эпос, чем на изящное искусство. Влияние этого вклада меньше в его специфической вечной силе, а больше в его воздействии на то, что последовало: от MochiKit.Async к jQuery Deferred к JavaScript Promises и в конечном итоге к async/await; длинная цепь разных мастеров, каждый добавляя что-то своё, пока оригинал почти не растворился. (И я здесь был не «оригинальным», так как я много заимствовал из Promises языка E и других источников.)
Чтобы превратить код в намеренное художественное выражение, нужно потратить немало времени на размышления о проблемной области. Не пережив утомление ручной передачи тысячи параметров callback, у меня не было бы ни навыка, ни вообще мотивации создавать такую вещь.
Теперь, большая часть кода не должна быть такой. Большая часть кода не может быть такой. Большая часть кода — функциональный, рабочий код. Большая часть кода не способна тронуть даму. Это просто копирайтинг, если хотите.
Как я объяснил ранее, большая часть письма — это тоже просто копирайтинг. Большая часть визуального искусства — реклама. Большая часть живого музыкального выступления — фоновая музыка в барах, которую почти никто не замечает.
Однако код, который намеренно эстетически разработан, как правило, важен как в социальном, так и в технологическом плане.
У нас есть некоторая традиция самомистификации в разработке ПО. Как памятно сказал Абельсон, «Программы должны быть написаны для людей, чтобы читать их, и только вторично — для машин, чтобы выполнять», поэтому мы давно имеем представление о программах как о высоко выразительных, даже если мы не всегда согласны, что они выражают или для кого. Иногда мы лирически говорим о философских последствиях конкретного программного обеспечения. Это не уникально для одного ПО; более чем одно сообщество предавалось подобным философствованиям.
Выразительные и эстетические качества ПО не ограничиваются чтением исходного кода или взаимодействием с другими программистами через API. Например, каждый год Федерико Виничи проводит обзор новой операционной системы Apple, который (среди прочего) является эстетической критикой. Такой проект был бы невозможен, если бы ПО не оказывало эстетического влияния на его пользователей.
И не говоря уже о том, что каждый обзор видеоигры — это тоже обзор ПО.
Небольшое отступление о грамотности в области ПО
Меня немного печалит, что в сообществе разработчиков нет традиции критического прочтения. Грамотное программирование часто хвалят, но редко практикуют.
Кроме того, меня печалит, что пользователи имеют весьма смутное представление о том, что входит в создание ПО, что грамотность в области программирования довольно низка, и что современные методы разработки часто намеренно создают плохую ментальную модель того, что делает ПО, чтобы ещё больше затруднить для пользователя понимание. Эстетический опыт ПО часто дико не соответствует его внутреннему состоянию.
Хотя все эти проблемы предшествуют ИИ на годы или даже десятилетия, это не причина с энтузиазмом их усугублять.
Защищай обыденное
Если мы используем ИИ для стирания всего копирайтинга, всего графического дизайна, всей скучной обыденной арт-работы, и да, всей скучной разработки кастомных WordPress-тем, то мы удалим все практические возможности для огромного количества практики и размышлений, необходимых людям для того, чтобы возвысить своё мастерство до великих свершений. Образование — это прекрасно, но большинство истинного развития навыков происходит на работе и всегда было так.
Это не означает, что мы не можем использовать абстракции или автоматизацию, чтобы облегчить нашу работу. Программирование — это искусство абстракции, понимание того, как составлять меньшие идеи в большие, как понимать автоматизацию большей системы через понимание правил, которые автоматизируют меньшие, и как их комбинировать.
Когда мы используем «ИИ» для устранения этого понимания вместо того, чтобы поднять его на более высокий уровень, чтобы полностью разрушить этот процесс творческого решения, мы наносим вред как себе как программистам, так и нашим пользователям. Мы наносили бы вред нашим пользователям и нашим коллегам-разработчикам вниз по цепи так же, как визуальный художник наносил бы вред своим зрителям или музыкант — своим слушателям, если бы предложили им сгенерированную начинку вместо своего собственного творческого выхода.
Хлам есть хлам, независимо от среды.
Каждый обыденный проект имеет некоторый мизерный шанс — скажем, примерно 0,1% — достичь величия. Если мы выполним один проект с помощью ИИ, то, конечно, почти нет шанса, что этот проект был бы тем единственным попаданием, чтобы создать определяющий карьеру момент для инженера, над ним работающего. Но если мы выработаем привычку делать все проекты таким образом, то мы берём общую вероятность таких моментов величия с «определённо иногда» и переводим на «никогда».
Правильные способы противодействия проникновению ИИ во всю разработку ПО выходят далеко за пределы полей этого одного короткого поста. Сколько вы можете сопротивляться и какие конкретные применения вы должны сопротивляться — решайте сами. Но стоит сопротивляться в разработке ПО так же, как стоило бы сопротивляться в любой другой творческой среде.
Программирование — это не что-то особенное. Это просто искусство, а искусство — самое человеческое — и, таким образом, самое универсальное — из всех существующих занятий.