Рутина современных разработчиков стремительно меняется. Если раньше программирование означало написание точных инструкций для компьютера и их многократное повторение, то теперь достаточно описать желаемый результат на обычном языке – и искусственный интеллект сам преобразует промпт в работающий код.
Этот новый подход получил название “вайб-кодинг”. Он стал возможен благодаря мощным языковым моделям, созданным компаниями OpenAI и Anthropic, а также специальным инструментам вроде Cursor Composer, GitHub Copilot и Replit Agent. Теперь даже люди без специального образования могут создавать программы, просто беседуя с нейросетью.
Сам термин появился благодаря бывшему исследователю OpenAI Андрею Карпати. Второго февраля он опубликовал пост в социальной сети X, где описал этот метод как полное погружение в поток разработки, при котором программист “отпускает” контроль и “забывает о существовании кода”. По его словам, процесс сводится к тому, что разработчик “смотрит что-то, говорит что-то, запускает что-то и копирует что-то” – и каким-то образом всё это работает.
В отличие от традиционного программирования, где каждая строчка кода тщательно выверяется, при вайб-кодинге разработчик действует интуитивно. Когда возникает ошибка, её текст просто копируют обратно в диалог с ИИ, принимают предложенные изменения и повторяют процесс до тех пор, пока программа не заработает. Карпати с юмором признаётся, что даже не ищет нужные участки кода сам – вместо этого просит ИИ выполнить простейшие задачи, например, “уменьшить отступы на боковой панели вдвое”.
Популярность нового метода растёт: у Cursor уже 40 000 платных пользователей, а GitHub Copilot в феврале 2024 года использовали 1,3 миллиона человек. Особенно активно вайб-кодинг применяют разработчики игр. Недавно Питер Янг из Microsoft продемонстрировал, как с помощью голосовых команд и ИИ-ассистентов Cursor и Claude 3.7 Sonnet создал простой трёхмерный шутер с зомби – он просто описывал словами желаемые изменения, а искусственный интеллект воплощал их в код.
Независимый разработчик и исследователь ИИ Саймон Уиллисон видит в вайб-кодинге отличный инструмент для быстрого создания прототипов и проверки идей. Однако он предостерегает от использования этого метода в промышленной разработке, где критически важны качество и понятность кода. “Вайб-кодинг – это весело, пока не приходится заниматься вайб-отладкой”, – иронично заметил другой разработчик, Бен Саут.
Основная проблема метода в том, что ИИ может генерировать код с ошибками или даже ссылаться на несуществующие функции и библиотеки. Впрочем, у такого подхода есть встроенный механизм проверки: некорректный код просто не будет работать. Это создаёт естественные границы применимости вайб-кодинга и помогает отсеивать ошибочные решения.
Уиллисон подчёркивает важное различие: если разработчик проверяет, тестирует и понимает каждую строчку, созданную ИИ, это не вайб-кодинг, а просто использование ИИ как помощника при наборе кода. Настоящий вайб-кодинг подразумевает принятие сгенерированного кода без полного понимания принципов его работы.
Сейчас сложность проектов, создаваемых методом вайб-кодинга, ограничена объёмом контекста, который способна обработать ИИ-модель. При работе над крупными системами человеку всё равно приходится выступать в роли архитектора, собирающего отдельные фрагменты сгенерированного кода в единое целое. Будущее метода во многом зависит от готовности компаний принять риски, связанные с качеством кода и сложностью его сопровождения.
Трансформация программирования под влиянием ИИ напоминает перемены в авиации после внедрения автопилота. Компьютерное управление сделало возможными сверхзвуковые полёты, поскольку взяло на себя задачи, с которыми большинство пилотов не могли справиться. Аналогично ИИ может помочь создавать более сложное и полезное программное обеспечение, избавив разработчиков от необходимости вручную прописывать технические детали.
В конце 1970-х – начале 1980-х годов многие считали, что для эффективного использования компьютера каждому человеку необходимо освоить программирование. Школьные системы по всему миру включали обучение программированию в образовательные программы. Однако вскоре появилось множество готовых приложений, позволяющих работать с компьютером без знания кода. При этом программисты не исчезли – они стали использовать эти приложения для создания ещё более сложных и совершенных программ. Возможно, похожие изменения произойдут и с распространением инструментов ИИ для программирования.