0. Вступление

Не торопитесь пролистывать эту статью. Я не собираюсь, подобно множеству других статей на Хабре, рассказывать о плюсах или минусах вайб-кодинга и сравнивать это с плюсами и минусами традиционного программирования. Потому что сравнивать нечего, ведь не случилось ничего такого, что бы как-то значительно изменило ситуацию. По сути, я буду говорить о том же, о чём говорил в предыдущей статье ( https://habr.com/ru/articles/938028/ -Михаил Елисейкин «IT-лягушка и новая нормальность» ) - о том, что мир меняется, а наши о нём представления от этих изменений отстают.

1. Дефиниции

2025-03-02, редакция Хабра оперативно сообщила нам о том, что сооснователь компании OpenAI, экс-директор по ИИ и бывший глава отдела разработки автопилота Tesla Андрей Карпаты ( https://habr.com/ru/news/878868/ ) ввёл в оборот новый термин: vibe coding / вайб программирование.

«Есть новый вид программирования, который я называю вайб‑программированием (vibe coding), где вы полностью отдаётесь вибрациям, принимаете экспоненты и забываете, что код вообще существует. Это возможно, потому что большие языковые модели (LLM, например, Cursor Composer w Sonnet) становятся слишком хороши. Также я просто общаюсь с Composer с SuperWhisper, поэтому я почти не касаюсь клавиатуры. Я прошу о самых глупых вещах, таких как „уменьшить отступ на боковой панели вдвое“, потому что мне слишком лениво, чтобы найти его. Я всегда „Принимаю всё“ (Accept All), я больше не читаю diffs. Когда я получаю сообщения об ошибках, я просто копирую и вставляю их без комментариев, обычно это исправляет ситуацию. Код выходит за рамки моего обычного понимания, мне приходится действительно читать его некоторое время. Иногда LLM не могут исправить ошибку, поэтому я просто обхожу её или прошу вносить случайные изменения, пока она не исчезнет. Это не так уж плохо для одноразовых проектов на выходные, но все равно довольно забавно. Я создаю проект или веб‑приложение, но это не совсем программирование — я просто вижу что‑то, говорю что‑то, запускаю что‑то и копирую, вставляю что‑то, и это в основном работает», — рассказал Карпаты.

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

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

Но всё это именно что «казалось бы».

2. Вайб-кодеры древности

Я использую слово «вайб-кодер», вместо «вайб-программист», специально для того чтобы можно было написать данный раздел. Это позволяет мне обратиться к примеру кода, который в Интернете используется чаще всего — к HTML-коду.

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

Но очень быстро оказалось, что не обязательно знать про тэги и уметь писать качественный HTML-код. Появились визуальные редакторы типа Dreamweaver, появились WYSISYG редакторы текста, встроенные прямо в CMS. Появились CMS в которых дизайн сайта настраивался мышкой, через перетаскивание блочков и настройку этих блочков той же самой мышкой, через выпадающие менюшки.

Появилась даже возможность создавать HTML-страницы прямо в рич-текст редакторах.

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

По большому счёту, редактирование хоть сколь либо сложного текста в рич-текст редакторах, известных нам как «офисные пакеты», это уже вайб-кодинг — стоило подумать о том, что добился нужного результата, как вдруг нужно ещё чуток поправить и… да вашужмать, почему всё перекособочило!!!! (Это, кстати, тоже вайб. :) )

И тут вы можете возразить, что я путаю божий дар с яичницей.

Ведь HTML-верстуны с Dreamweaver, чайники с Народом и Tilda, и девочки-секретари с Word, это не то же самое что настоящие кодеры, которые носят гордое звание «программист».

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

Точнее, программист был таким до 2025-02-03, когда проклятый OpenAI дал всем идиотам возможность кодить, без вникания в код и понимания основ программирования.

3. Настоящие программисты современности

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

Не те идеальные «прикладные математики», которые в нашем представлении умеют писать команды процессору, шилом пробивая перфоленты со скоростью 10 метров в минуту, а реальные, современные, наши.

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

- современный программист не всегда знает синтаксис функций, которые использует. У него для этого есть IDE с автокомплитом и подсказками. Фактически, программист просит компьютер вставить заготовку под функцию и потом заполняет нужные поля. Возможно, он даже делает это не прикасаясь к клавиатуре — одной лишь мышкой.

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

И если до этого момента, вы ещё могли сказать, что программист всё это делает с пониманием процесса, то…

- современный программист лезет в документацию языка/библиотеки/фреймворка с примерами, или в чужой код, или на Stack Overflow и копирует оттуда код, который выглядит подходящим и правоподобным. Потом запускает, смотрит на ошибки и допиливает код.

От того самого вайб-кодинга это отличается лишь голосовым управлением на естественном языке, но это переход не от «много и упорно своими руками стучал по клавиатуре» , а от «лениво потыкал мышкой в кнопки и дропдауны». А всё остальное в виде копирования и допиливания откуда-то взявшегося чужого кода, это есть уже очень давно.

Да и само «управления на естественном языке» на практике оказывается отдельным жанром общения, со своими принципами и форматом, что очень напоминает умение искать по манам или правильно гуглить примеры кода.

Так что, обсуждаемые особенности и риски т. н. «вайб-кодинга» / «вайб-программирования», возникли не 2025-02-03 и не с появлением LLM как таковых, а уже давно и уверенно присутствуют в т. н. «традиционном программировании».

4. Так что же такое «вайб-кодинг»

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

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

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

LLM помогаторы это просто ответ на запрос «надо больше кодеров». Они не драйвер значительных изменений, а их следствие.

Революция отменяется.

Михаил Елисейкин
2025-08-19

* * *

Продолжить наслаждаться моими текстами можно прямо на Хабре , без перехода в телеграмм - https://habr.com/ru/users/muxa_ru/articles/ .

Комментарии (3)


  1. Chudoyudin
    19.08.2025 11:00

    Прооистал


  1. ihouser
    19.08.2025 11:00

    Маркетинг, значит...

    Пора срочно патентовать "вайб-переводчик", "вайб-писатель", "вайб-читатель" и прочие "вайбы".


    1. muxa_ru Автор
      19.08.2025 11:00

      Патентовать не обязательно.