Вайб-кодинг
Что такое вайб-кодинг?
Вайб-кодинг — это метод программирования на базе ИИ, представленный Андреем Карпатым в 2024/2025 году. При вайб-кодинге вы описываете, что хотите, в запросах на естественном языке, и обычно большие языковые модели (LLM) генерируют для вас большую часть, а зачастую и весь рабочий код. Если у вас есть время, ознакомьтесь с Искусством вайб-кодинга, адаптированным Риком Рубином, чтобы узнать больше о пути вайб-кодинга.
Одно из больших преимуществ этого нового метода — доступность, поскольку люди без опыта программирования могут создавать проекты, а опытные разработчики могут быстро прототипировать новые идеи, прежде чем полностью вкладываться в них. Это особенно полезно для стартапов. Недостаток в том, что разработчики, скорее всего, не будут полностью понимать, как работает сгенерированный код. Для небольших побочных проектов это нормально, но для программного обеспечения уровня production это может привести к долгосрочным проблемам и техническому долгу.
Существует множество инструментов, которые делают вайб-кодинг удобнее. Cursor IDE, Claude Code CLI, GitHub Copilot, Loveable, Replit, v0 и другие позволяют работать с ИИ прямо в вашей среде или предоставляют специализированные интерфейсы для вайб-кодинга. Лично я в основном использовал Cursor IDE и Claude Code CLI для этих проектов.
Вот в чем дело. Эти инструменты и модели стоят денег. При традиционном программировании вы в основном платите своим временем. При вайб-кодинге вы платите своим кошельком. А если вы не знаете, что делаете, вы платите и кошельком, и временем. Каждый из проектов на этой странице стоит примерно $10–$20 на создание. Если вы много экспериментируете, это быстро накапливается. Я действительно думаю, что по мере улучшения и повышения эффективности этих моделей стоимость в конечном итоге снизится. Пока же об этом стоит помнить, решая, подходит ли вайб-кодинг для вашего проекта.
Заинтересовавшись тем, что возможно, я сам попробовал вайб-кодинг и сделал эту страницу, чтобы исследовать сам принцип через реальные проекты. Я не просто создаю продукты, я тестирую и демонстрирую, на что на самом деле способен вайб-кодинг. Это просто ради удовольствия, но это дает представление о том, как может выглядеть программирование в будущем по мере дальнейшего улучшения этих моделей.
Теорема бесконечных обезьян
Слышали когда-нибудь о Теореме бесконечных обезьян? Это философский мысленный эксперимент, который утверждает, что если дать бесконечному числу обезьян бесконечное число пишущих машинок и бесконечное время, то в конце концов одна из них случайно набирая по клавишам произведет полное собрание сочинений Шекспира.
Звучит нелепо, правда? Но вот в чем безумие. Вайб-кодинг чем-то похож на это, только вместо обезьян у нас модели ИИ, вместо пишущих машинок — языки программирования, а вместо Шекспира мы получаем работающее программное обеспечение.
Подумайте об этом. Большие языковые модели обучаются на миллиардах строк кода, паттернах и примерах. Когда вы даете LLM запрос, она на самом деле не «обдумывает» вашу проблему шаг за шагом, как это сделал бы человек-разработчик. Вместо этого она предсказывает следующий наиболее вероятный токен на основе паттернов, которые усвоила в ходе обучения. По сути, она делает обоснованные предположения, генерируя код на основе того, что статистически кажется правильным.
И каким-то образом, чаще всего, это работает. Модель выдает код, который действительно компилируется, запускается и решает вашу проблему. Не благодаря пониманию, а благодаря вероятностному сопоставлению паттернов в абсолютно гигантском масштабе. Это как если бы самый продвинутый в мире генератор случайного текста нашел «правильный» ответ. Но здесь разница в скорости. Тем обезьянам понадобилась бы буквальная бесконечность. Вашему ИИ? Достаточно нескольких секунд или минут.
Так что в некотором смысле, когда вы используете вайб-кодинг, вы используете миллионы строк кодовых паттернов, дистиллированных в модель, чтобы генерировать решения. Это не сознательное решение проблем, это статистическая магия. И именно поэтому он настолько мощный и, признаем, именно поэтому понимание того, что на самом деле делает код, все еще важно.
Вопрос важнее ответа
Вот что важно и что часто упускают из виду. Вайб-кодинг — это не про получение любого ответа, а про то, чтобы задать правильный вопрос. Подумайте о Суперкомпьютере Deep Thought из Автостопом по галактике. Он потратил миллионы лет, вычисляя ответ на главный вопрос о жизни, Вселенной и всем таком, и в итоге выдал число 42. Ответ был технически правильным, но бесполезным, потому что настоящая проблема заключалась в том, чтобы с самого начала понять, какой вопрос нужно задать.
Вайб-кодинг работает так же. Ваши запросы — это все, но не менее важно и управление контекстом. Нечеткий запрос даст вам нечеткий код, и если вы не предоставите правильные файлы, документацию или примеры в качестве контекста, модель не поймет, что вам действительно нужно. Если вы человек, который понимает программирование, архитектуру и системное проектирование, вы можете составлять детальные запросы и подбирать правильный контекст, чтобы направить LLM к отличным решениям. Но если вы не знаете, что именно просить или какой контекст предоставить, ИИ тоже не будет знать.
На самом деле именно поэтому вайб-кодинг так мощен для опытных разработчиков. Мы знаем, как выглядит хороший код, понимаем подводные камни и можем писать запросы, которые уводят модель от них. Для новичков без технического фона это становится серьезным ограничением. Вы можете получить рабочий код, но без понимания, что пошло не так или что просить дальше, вы застреваете.
Когда вайб-кодинга недостаточно
Последние модели ИИ впечатляют, но это не панацея. Вайб-кодинг может работать в production, но только если вы относитесь к нему серьезно. Вам нужны надежные модульные тесты. Вам нужны четкие источники истины о том, что должна делать ваша система. Вам нужно улавливать моменты, когда что-то ломается или дрейфует. И вам нужен образ мышления хакера. Мыслите нестандартно и пытайтесь сломать свой вайб-кодированный проект неожиданными способами. Какие крайние случаи вы не учли? Какие уязвимости безопасности может использовать кто-то злоумышленный? Именно это отличает код, который просто работает, от кода, который действительно надежен.
Но вот в чем дело. ИИ не владеет вами. Вы владеете ИИ. Не принимайте бездумно то, что он генерирует. Проверяйте это. Тестируйте это. Ломайте это. И, честно говоря, для некоторых частей вашей кодовой базы вам придется вернуться к старой доброй ручной разработке. Сосредоточьтесь, подумайте глубоко, напишите это сами. Вайб-кодинг ускоряет процесс, но он не заменяет настоящее программирование там, где это важно.
Есть и еще одна вещь, которую я понял. Иногда вам просто нужно завершить сессию с ИИ и начать новую. По мере того как история диалога становится все длиннее и длиннее, производительность модели ухудшается. Она делает больше ошибок, генерирует менее связный код и начинает чаще галлюцинировать. Если вы этого не заметите и не остановитесь, эти ошибки будут наслаиваться друг на друга, делая ситуацию все хуже и хуже. Это как пытаться читать документ, который снова и снова ксерокопировали. Новый старт помогает сохранить все чистым и четким.
Проекты, созданные вайб-кодингом
Ниже представлены два проекта, stairs (репозиторий) и transcendental (репозиторий), которые я построил, используя методологию вайб-кодинга. В основном они сгенерированы из запросов, а ручная работа была ограничена предоставлением контекста, отладкой и развертыванием на GitLab Pages. Это забавные эксперименты со статическими сайтами, демонстрирующие, что возможно, когда вы сочетаете творческие идеи с кодом через вайб-кодинг. Оба размещены на GitLab.