Вайб-кодинг: Будущее программирования или угроза для инженеров?

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

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

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

«Хотя ИИ, безусловно, влияет на наши методы написания кода, это не изменило суть нашей роли в качестве инженеров», — подчеркивает автор публикации.

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

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

Вопрос о том, способен ли ИИ завершить полный цикл разработки и создавать программное обеспечение, как это делает человек, остаётся открытым. «Тем не менее, на сегодняшний день нет оснований полагать, что это реально, и если это когда-либо произойдёт, то не будет иметь ничего общего с вайб-кодингом в его нынешнем понимании», — уверен Целовальников.

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

Целовальников считает, что в таком сценарии каждый специалист будет выполняет функции как архитектора, так и инженера платформы. Возможно, даже можно было бы ввести термин «Vibe Engineering» для новой роли, однако его определение будет аналогично традиционной программной инженерии, только работа будет требовать меньше объёма кода.

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

В то же время американская компания CO/AI объявила о вакансии на вайб-кодера, который займется фронтенд-разработкой. В компании полагают, что в течение следующих пяти лет многие разработчики начнут активно использовать нейросети и хотят начать эксперименты уже сейчас.