Вайб-кодинг уже меняет программирование. Но писать код теперь действительно не обязательно?

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

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

На мой взгляд, именно это изменение важнее самой способности ИИ генерировать код.

От написания кода к постановке задачи

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

Сейчас этот порядок постепенно переворачивается.

Человек может написать что-то вроде:

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

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

Если результат оказался неправильным, необязательно сразу искать конкретную строку кода. Можно продолжить диалог: добавить фильтр, изменить внешний вид, сохранить данные после перезапуска или передать нейросети сообщение об ошибке.

Получается довольно простой цикл:

идея -> описание -> генерация -> запуск -> проверка -> исправление.

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

Простое приложение действительно можно сделать без программирования

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

Сайт, Telegram-бот, калькулятор, список задач, трекер расходов, небольшая игра, скрипт для обработки файлов или внутренняя утилита - всё это вполне можно собрать, практически не набирая код вручную.

Особенно интересным мне кажется использование такого подхода для прототипирования.

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

Это серьёзно снижает стоимость эксперимента.

Но здесь появляется важная оговорка: "можно создать без знания кода" и "можно создать вообще без технических знаний" - всё-таки разные вещи.

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

В этот момент понимание хотя бы базовых принципов разработки становится очень полезным.

Главная проблема вайб-кодинга - код может работать и при этом быть плохим

Мне кажется, это один из самых недооценённых моментов.

Человек без опыта обычно оценивает программу по довольно простому критерию: нажал кнопку - всё произошло правильно.

Но рабочий интерфейс ещё не означает, что внутри всё хорошо.

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

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

Например, приложение может нормально работать на нескольких тестовых записях, но начать заметно тормозить на большом объёме данных. Или система авторизации выглядит рабочей, но на самом деле неправильно проверяет права пользователей.

Для домашней утилиты это не всегда критично. Для сервиса с реальными пользователями, платежами или конфиденциальной информацией ситуация совершенно другая.

Вайб-кодинг - это не no-code

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

Но принцип всё же разный.

No-code обычно предлагает готовые компоненты: формы, таблицы, кнопки, сценарии и интеграции. Пользователь собирает приложение внутри возможностей конкретной платформы.

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

Нейросеть может создать проект на Python, JavaScript, Java, C# или другом языке, подключить библиотеку, написать серверную часть или изменить существующие файлы.

Поэтому свободы потенциально больше. Если нужную функцию можно реализовать программно, ИИ в принципе способен её написать.

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

Чем больше проект, тем меньше работает принцип "просто попроси ИИ"

На маленьком приложении почти весь код может помещаться в контекст модели. Нейросети относительно легко понять связи между несколькими файлами и внести нужное изменение.

Но проект постепенно растёт.

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

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

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

Поэтому для серьёзных проектов я бы всё-таки не рассматривал ИИ как замену разработчику.

Скорее он меняет роль самого разработчика.

Человеку приходится меньше заниматься механическим написанием типового кода, но больше - постановкой требований, архитектурой, проверкой результата, тестированием и контролем того, что именно сгенерировала модель.

Порог входа в программирование действительно становится ниже

И вот здесь, на мой взгляд, происходит самое интересное.

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

Можно действовать наоборот.

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

То есть теория начинает появляться не до практики, а вместе с ней.

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

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

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

Раньше основным способом объяснить компьютеру задачу был язык программирования. Теперь между идеей человека и этим языком появился дополнительный слой - искусственный интеллект.

И этот слой действительно может сделать создание программ доступнее огромному количеству людей.