Большую часть времени, что автор занимается разработкой ПО — по меркам некоторых читателей не такую уж и долгую, — казалось, что самое сложное — это заставить вещь существовать вообще. Убеждение сложилось не вчера: начиналось всё с трудного и утомительного опыта создания веб-приложений, которые то и дело падали и ломались.
У тебя есть идея, а между идеей и работающей программой — часы, порой недели набора текста, чтения документации, неправильного понимания API и медленного дожимания неверной версии до чуть менее неверной. Продакшн был стеной. В неё упирались все. Именно она отделяла тех, кто мог, от тех, кто мог только говорить об этом.
Этой стены больше нет. Точнее, её сдали в аренду. 1 Теперь можно описать вещь и получить её правдоподобную версию быстрее, чем раньше набиралась вручную первая функция. Дистанция от идеи до артефакта, которая определяла всё ремесло, схлопнулась почти до нуля.
Правда, есть одна деталь, о которой никто не предупредил: ценность, накопленная за годы преодоления этой стены, никуда не делась. Она просто… переместилась.
Планка сдвинулась
Мы продолжаем спрашивать, хороши ли машины. Ещё вчера был короткий разговор о том, надёжны ли они. Пришли к выводу, что они «надёжно ненадёжны», но это неправильный вопрос. Результат в целом достаточно хорош, и именно это проблема — по крайней мере, для большей части случаев. «Достаточно хорошо» — растворитель. Он растворяет саму причину делать лучше. Пока создание вещей было дорогим, дороговизна незаметно работала на нас: она нормировала выпуск. Значило это, что всё существующее как минимум пережило издержки собственного создания. Усилие было фильтром — и, как всякий фильтр, оставалось невидимым, пока его не убрали. Никто не выпускал тысячу посредственных вариаций фичи, потому что тысяча посредственных вариаций стоила в тысячу раз дороже одной. Экономика устанавливала нижнюю планку.
Этой планки больше нет. А когда планка исчезает, решение о том, что достойно сохранения, перестаёт зависеть от стоимости создания. Теперь решаешь ты сам. Твоё суждение. Вердикт, к которому приходишь, глядя на три правдоподобных варианта одной и той же функции и каким-то образом понимая, что два из них неверны. У этого вердикта есть название, которое в инженерных кругах немного стесняются произносить — оно звучит мягко, неопровержимо и слегка аристократично.
Вкус.
Что такое вкус на самом деле
Здесь важно быть аккуратным, потому что слово «вкус» несёт большую нагрузку, и его легко услышать как что-то декоративное — вопрос предпочтений, вроде того, ставить ли фигурные скобки на той же строке.
Но речь не об этом.
Роберт Пирсиг посвятил целую книгу слову, которое сознательно отказался определять, будучи убеждён, что определение убьёт его суть. Он называл это Качеством. Его аргумент, грубо говоря, состоял в том, что Качество узнают раньше, чем могут объяснить — узнавание приходит первым, а причины появляются позже, если появляются вообще. Хороший механик знает, что двигатель работает не так, ещё до того, как понимает почему. Хороший редактор чувствует провисание фразы раньше, чем может назвать неудачную конструкцию. 2
Вкус — это именно оно. Сжатый, невыразимый словами вердикт, к которому приходишь быстрее, чем можешь его обосновать. Это отчасти 3 то самое «нет, ещё раз», которое говоришь себе с полной убеждённостью и без единого доступного аргумента. И это вовсе не что-то мягкое. Это самая трудная часть работы, потому что это единственная часть, которая никогда не была механической.
Всё, что идёт после вердикта — набор кода, синтаксис, связывание одной библиотеки с другой, — в принципе, всегда поддавалось автоматизации. Просто руки до этого не доходили. Вердикт был тем, чего машина не могла сделать за тебя.
И до сих пор не может. Она лишь делает игнорирование его отсутствия дешевле.
Вкус — производная от трения
Вот неудобный механизм, о котором лучше бы не думать.
Откуда взялся твой вкус?
Нет, правда. Откуда он взялся — генетика? Может, тебя однажды похитили инопланетяне и насильно вживили чувство вкуса в мозг, стерев память?
Вот что точно: не из потребления хороших работ. Нельзя прочитать сотню отличных программ и впитать суждение осмосом, точно так же как нельзя стать шеф-поваром, просто питаясь в хороших ресторанах. Вкус строится медленным, глупым, унизительным путём: делаешь что-то плохое, вынужден с этим жить, оно проваливается у тебя на глазах, и какая-то часть тебя фиксирует эту неудачу. Потом делаешь снова. Вкус — накопление собственных ошибок, отложенных достаточно надолго, чтобы начать жечь.
Трение не было препятствием на пути к вкусу. Трение и было учебным планом. Каждая стена, которую проклинал, взбираясь на неё, незаметно учила, какие стены вообще стоило штурмовать. Издержки, нормировавшие выпуск, одновременно воспитывали суждение — потому что многократная оплата цены и есть способ понять, за что вообще стоит платить.
Теперь посмотри, что происходит, когда убираешь трение для следующего человека.
Он способен генерировать бегло с первого дня. Он никогда не выпустит плохую версию и не будет вынужден с ней жить, потому что инструмент бесплатно предлагает компетентную версию. Он не взберётся ни на одну стену — а значит, ничему не научится на подъёме. Он придёт к беглости, пропустив всё ученичество, которое эта беглость раньше требовала — и по любой измеримой метрике будет продуктивнее автора на том же этапе.
Он сможет сделать что угодно и не сможет понять (или хотя бы остановиться и подумать), стоит ли это делать. Не обязательно по своей вине. Убрали ту часть процесса, которая бы его научила, и назвали это прогрессом — и по большинству определений это действительно был прогресс.
Экономика против тебя
Допустим, у тебя есть вкус. Допустим, ты заплатил полную цену и чувствуешь провисание фразы и неправильность функции.
Поздравляем! Теперь ты выпускаешь продукт ровно с той же скоростью, что и человек без вкуса.
Это тихая жестокость ситуации, и утешительной формулировки для неё нет. Вкус медленный. Он говорит «нет, ещё раз». Он отправляет правдоподобное обратно, потому что правдоподобное — не то же самое, что правильное, а пока это происходит, человек без вкуса уже отгрузил результат, закрыл тикет и пошёл дальше. Рынок засёк время у обоих одним секундомером и не увидел разницы. Он не может её увидеть. Вкус не отображается в diff.
Он неизмерим, незачётен и невидим на дашборде. Нельзя указать на катастрофы, которые он предотвратил, потому что предотвращённые катастрофы не оставляют следов. Ты несёшь издержки — лишние часы, возвращённую на доработку работу, отказ выпустить приличную вещь, пока ещё достижима правильная, — и несёшь их в одиночку, против экономического стимула, работающего в обратную сторону.
Гарри Франкфурт когда-то провёл чёткую границу между лжецом и болтуном (bullshitter). Лжец хотя бы уважает истину настолько, что работает против неё. Болтуну же безразлична истина в любом направлении — он просто к ней равнодушен. 4 Слоп — это инженерный эквивалент болтовни. Он не то чтобы неправилен — он равнодушен. Он работает, проходит проверки, он «нормальный». А «нормальное», произведённое без трения и выпущенное без суждения, теперь самое распространённое вещество в отрасли.
Потоп
Стёрджон сказал это десятилетия назад, защищая научную фантастику от критика: девяносто процентов всего — хлам. 5 Он имел в виду это как утешение: девяносто процентов любой области плохи, так что не судите область по её массе. Но опасность никогда не заключалась в самом соотношении — оно веками оставалось неизменным. Поток сдерживало то, что производство хлама чего-то стоило. Плохой роман всё равно писался год. Плохое ПО всё равно строилось месяц. Девяносто процентов сдерживались у источника самим неудобством создания.
Теперь сдержку убрали, а соотношение осталось прежним. Девяносто процентов от бесконечного объёма — всё равно бесконечность. Сигнал не стал хуже. Шум стал бесплатным, а бесплатный шум растёт без предела, и каждая настоящая вещь теперь появляется в море правдоподобного ничто, которое на первый взгляд выглядит точно так же.
А значит, дефицитное действие — больше не создание. Это выбор. Решение о том, что из бесконечного правдоподобного сгенерированного заслуживает существования и сохранения. Курирование было второстепенной добродетелью, пока вещи стоили дорого в производстве. Теперь, когда они бесплатны, это вся игра целиком.
Что заслуживает существования
Здесь прослеживается рифма, если заглянуть достаточно далеко назад.
Когда появились фабрики, они внезапно смогли делать всё — дёшево, единообразно, тысячами. 6 И горстка людей, среди которых Моррис и Рёскин, глядя на поток дешёвых одинаковых товаров, задались вопросом, который тогда казался сентиментальным и обречённым: не можем ли мы это сделать, а стоит ли это делать, и делать именно так — никем, ни для чего, кроме того, что машина могла.
Они проиграли экономический спор. Иначе и быть не могло. Но они были правы в главном: когда создание становится бесплатным, ремеслом становится выбор. Человеческий вопрос перестаёт звучать как «могу ли я это построить» и превращается в «заслуживает ли это существования» — и этот вопрос всегда был более серьёзным. Просто задавать его было не по карману, пока все были заняты штурмом стен.
Мысль возвращается снова и снова. Это не утешение, а поправка.
Инструменты не обесценили навык. Они содрали с него всё, что не было навыком. Все эти годы казалось, что работа — это производство: набор кода, связывание частей, стена, — а производство, как выясняется, было пошлиной. Налогом, который платили за право осуществлять суждение. Теперь налог близок к нулю, а то, что осталось стоять открытым, без укрытия, — само суждение. Часть, которая всегда и была сутью.
Вкус не стал менее ценным. Он стал единственной вещью, которая когда-либо была дефицитной. Просто её не было видно, потому что она была погребена под всем трудом, который раньше требовался, чтобы до неё добраться.
Тогда — защита
Вот, собственно, и защита, какая уж есть.
Генерировать теперь может каждый. Эта гонка окончена, и выигрывать в ней никогда не стоило. Дисциплина, которая осталась — та, которую машина не может сдать в аренду, а дашборд не может увидеть, — заключается в отказе. В «нет, ещё раз». В заботе о разнице между нормальным и правильным, когда ничто внешнее никогда не вознаградит за эту заботу, когда рынок засёк время и пожал плечами, когда правдоподобная версия просто лежит, работает, проходит проверки и просит только одного — пропустить её.
Всё равно отказывай ей. Не из ностальгии по трению — по стене автор не скучает, и притворяться не будет. Отказывай, потому что вердикт — последнее, что действительно принадлежит тебе. Он неизмерим, а значит, никто не сможет отнять его, измерив. Он неавтоматизируем, а значит, никто не сможет продать его тебе обратно. Он медленный, а в отрасли, оптимизирующей под бесконечную скорость, медлительность всё меньше похожа на недостаток и всё больше — на единственное оставшееся доказательство того, что здесь был человек, которому не было всё равно.
Сделать может теперь кто угодно и что угодно. Почти никто не может сказать, что стоит делать.
Это всегда было более сложным навыком. Теперь это единственный оставшийся.
Post-Mortem
О языке
Этот пост читается как AI-слоп. Вы это сказали, я это вижу. Искренне сожалею, что опубликовал текст, вызвавший такое чувство. Если моё слово хоть что-то значит, хочу заверить: этот пост не написан LLM. Он также не был раскадрован, отрецензирован, проверен и т.д. языковой моделью. Некоторые читатели отметили, что люди так не говорят. Верно. Я не говорю, да и обычно не пишу так — этот пост войдёт в число моих не самых удачных, но критику принимаю близко к сердцу — хотя и не как личное оскорбление — и стараюсь становиться лучше.
Иногда я действительно пишу именно так. Короткие предложения, инверсии, однословные строки — всё это моё. Так уж вышло. LLM пишет так же, потому что обучена на тех же эссе, на которых я вырос, поэтому когда я делаю это плохо, а машина делает то же самое — на странице это выглядит одинаково для вас. Это кое-что говорит о моём письме. Но ничего не говорит о том, кто его написал.
Так что скажу прямо: Claude здесь не при чём. Ни одна LLM не написала это — ни единого предложения, она не составляла план, не писала черновик, не рецензировала, не проверяла, и никакого промпта за этим тоже нет. Это просто я, пишущий хуже обычного. В следующий раз напишу проще. А в следующий раз — напишите мне. Я тоже человек за этим экраном.
С благодарностью
Уверяю, что прочитал все ваши комментарии — хорошие и плохие. Как и с предыдущим постом, попавшим на Hacker News, получил много содержательных откликов. Делились ли люди своим опытом или критиковали по существу и с достоинством — сегодня я узнал что-то новое, за что благодарен.
О вкусе
Мне нет дела до вашего вкуса. Если этот пост вас оскорбил, это говорит больше о вас, чем обо мне. Как говорится, «брось оскорбление на землю — его хозяин сам подберёт» — и за эту фразу мне не стыдно.
Примечания
У этой договорённости есть более старое название. Ты больше не владеешь средствами производства — ты арендуешь их, токен за токеном, у того, кто обучил модель. Один школьный учитель английского — убеждённый социалист — успел бы расчертить всё на доске раньше, чем предложение было бы закончено: рабочего сначала отделяют от его инструментов, потом от самого труда, затем продают ему безфрикционный заменитель труда и говорят, что это освобождение. Он же, подозреваю, первым заметил бы единственную часть процесса, которую невозможно сдать обратно в аренду — потому что она никогда не покидала твою голову. Делай выводы сам, что это за часть.
«Дзен и искусство ухода за мотоциклом» — если не читали. Книга о гораздо большем, чем мотоциклы, и почти ни о чём, что касается дзена.
Кто-то возразит (и уже возражал!), что вкус — это не только «нет, ещё раз»; что сведение его к вердикту делает работу похожей на то, будто откидываешься в кресле и отвергаешь варианты, пока машина трудится. Возражение справедливо, поэтому выше и стоит слово отчасти. «Нет, ещё раз» — это сокращение, а не вся суть. Вердикт живёт внутри самой работы — в структурах данных, которые действительно должны масштабироваться, в приватности, которую действительно нужно обеспечить, в функции, переписанной в четвёртый раз, потому что третья версия была просто нормальной. Вкус — не кресло, в которое откидываешься. Это причина, по которой наклоняешься вперёд ко всему остальному.
«On Bullshit». Франкфурт, 2005, хотя само эссе старше. Да, это реальное название.
Теперь известно как закон Стёрджона, или откровение Стёрджона. Он опубликовал это в своей колонке рецензий в Venture Science Fiction в марте 1958 года, после многих лет использования этой мысли для отпора критикам, судившим весь жанр по худшим его образцам.
Справедливое возражение, которое автор получил: получается, будто фабрика свалилась с неба — какое-то магическое «достаточно хорошо», явившееся однажды в готовом виде. Это не так. Фабрика сама по себе — памятник вкусу и труду: кто-то настраивал каждый допуск и до сих пор их настраивает, и то же самое верно для модели, которую ты арендуешь токенами. Так что коробка — не магия. Коробка подняла вкус на уровень выше: из создания — в решение о том, что вообще стоит создавать. В этом и вся суть аргумента.