Кажется, мы окончательно запутались в терминах.

За последнюю неделю меня назвали вайб-кодером раз 20. Не то, чтобы меня это как-то оскорбляло, каюсь, пишу код в Cursor, но просто... Это ведь не так - просто по определению. Похожие чувства я испытывал, когда хакатонами стали называть любые мероприятия с кодингом, а их участников - хакерами. Но язык - штука живая, и писать душную статью о том, как мы все неправильно юзаем термины - точно не то, на что я хочу убить вечер воскресенья.

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

А в чём отличие?

Если глянуть на оригинальный пост Андрея Карпаты, то вайб-кодинг - это про "не писать код вообще". Это когда только ИИ пишет, исправляет и читает код. А человек не притрагивается к нему ну прям совсем. Не важно, потому что он не умеет (потому что он не программист) или потому что он бахнул пивка и не хочет работать с кодом. В общем, это больше про "вайб", чем про "кодинг".

Здесь и появляется та самая путаница. Когда ты, дорогой username, пишешь код в Cursor, используя Cursor Tab или давая задачи агенту, после чего проверяешь результаты его генерации - это не вайб-кодинг, это AI-assisted coding (или руссифицированное "разработка с ИИ-инструментами").

А вот когда ты, дорогой username2, работая продактом или бухгалтером, открываешь Lovable/v0/Bolt, и собираешь себе сайт, инструмент автоматизации, или скрипт, который парсит какие-нибудь данные, при этом даже не заглядывая в код - ты вайб-кодишь.

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

И всё таки - в чём отличие?

Я много общаюсь как с разработчиками, которые вдоль и поперёк изучили Cursor, так и с теми, кто пару месяцев назад и представить не мог, что создаст при помощи ИИ своё веб-приложение или телеграм-бота.

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

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

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

Установи csv-export и download.js, и обнови UsersTable.tsx, добавь справа в заголовок кнопку из shadcn/ui, чтобы по клику на неё с API брались юзеры за вчерашний день, после чего выгружай их в csv

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

Разработчики ждут от ИИ в первую очередь качественный код. Работающий, безусловно, но требования к коду очень высокие - отсутствие дублирования, соответствие общему стилю в проекте, файлы должны лежать там, где ожидается, разбиение по модулям/классам должно соответствовать good practise, и так далее.

ИИ не может "просто" выполнить задачу - он должен написать код практически так же, как разработчик бы сделал это сам.

Проблемы

Самая главная проблема для вайб-кодера - это технический долг.

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

Да, можно обмазаться Cursor Rules, явно просить проверять наличие функций/компонентов перед созданием новых.

Да, можно попросить ИИ отрефакторить кодовую базу (правда, не очень понятно, как оценить качество результата не будучи разработчиком).

Но здесь нет пр��стого решения. Только дробить проект заранее на маленькие под-продукты. Таковы реалии: ИИ не всемогущ, и ждать от него создания целых приложений - пока бессмысленно.


Для разработчика главная проблема совсем другая.

Она похожа на то, с чем сталкивались художники, пытавшиеся использовать Midjourney в работе.

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

Как художники играли в игру "смогу ли я составить для Midjourney такой промпт, чтобы на выходе получилась картинка из моей головы", разработчики часто играют в похожую игру в Cursor.

И эта задачка, кстати, решаемая, в большинстве своём. Обмазавшись Cursor Rules с подробным описанием структуры и стиля проекта, бахнув кастомный энхенсер в supercode со своими классическими требованиями, сгенерировав/написав подробные доки вы действительно в 80% случаев сможете получать код, который будет до боли напоминать ваш собственный.

Но чтобы к этому прийти придётся вложить много ресурсов в сетап проекта - ту самую настройку правил, доков, кастомных промптов, etc. И этот путь не готовы проходить многие.

Гораздо чаще я вижу противоположенную ситуацию - опытные разработчики пробуют Cursor, дают ему 2-3 попытки "написать тот код, который ты от него ждёшь", и, не получив результат, закрывают со словами "не дорос ещё ИИ, куда ему".

Давайте жить дружно

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

Появление новой категории творцов, которые без знания программирования создают программные продукты - это круто.

Я пользовался налоговым калькулятором, который сделал чувак-бухгалтер в v0. Мой товарищ, владелец интернет-магазина автоматизировал себе базовую тех. поддержку за 20 часов с Cursor'ом. Таких примеров множество, и я верю, что это изменение - к лучшему.

Одновременно с этим, появление ИИ-инструментов для разработчиков не менее прекрасно. Я пишу код в 5-6 раз быстрее, благодаря Cursor, и всем примочкам к нему - Context7, Supercode, Figma MCP, и прочим. Я собираю интерактивные прототипы в v0 всего за пару промптов, и потом могу переносить их сразу в код.

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


P.S. Я очень много пишу про разработку c ИИ у себя в телеграм-канале. Заставляю ИИ писать хороший код, обозреваю свежие новости технологий, даю аналитику по отрасли и всем событиям. Иногда рассказываю как создавать собственных ИИ-агентов и приложения с ИИ. А ещё недавно стал выкладывать подобные обзоры на ютуб. Велком!