Код больше не пишут5 min · en ruso

Предисловие

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

В 2024 году я ещё переделывал большую серверную программу на Nest.js, написанную одним куском, и ИИ был в этой работе подручным, который подсказывает строчки и иногда пишет функцию целиком. Второго апреля 2025 года я тестировал телеграм-бота, собранного из готовых деталей: языковой модели, библиотеки LangChain, которая учит модель пользоваться инструментами, сервиса Composio, который открывает ей доступ к чужим программам, и Kommo, обыкновенной CRM, где отдел продаж хранит карточки клиентов. Бот по моей просьбе сам обратился к Kommo, и через несколько секунд в настоящей CRM появилась компания INITE под номером 200794 и контакт по имени Иван Иванов под номером 200800. Для этого никто не написал ни строчки кода: модель просто сделала то, что раньше делал менеджер, щёлкая мышкой по форме.

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

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


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

Языковые модели обнулили стоимость перевода. Теперь идею про коммуналку достаточно объяснить машине обычными словами, и через минуту она вернёт несколько сотен строк, которые, скорее всего, даже запустятся. Отсюда почти сразу вывели, что программировать теперь может каждый, и этот вывод повторяют с конференционных сцен, из рекламы и в разговорах с инвесторами с такой уверенностью, будто он доказан.

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


Книга написана для людей, которые код не пишут и, может быть, никогда не писали. Я исхожу из простого соображения: программы давно управляют вашими деньгами, вашей машиной, вашей медицинской картой и тем, что вам показывают в ленте, так что вопрос, кто и как их теперь делает, касается вас примерно в той же степени, в какой вас касается вопрос, кто теперь строит мосты, по которым вы ездите. Технических слов в тексте будет ровно столько, сколько без них не обойтись, и каждое я объясню в тот момент, когда оно впервые понадобится.

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

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

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

Разработка начинается там, где написание кода заканчивается.

Предисловие — Код больше не пишут | Mike Fluff