Connect with us

Программирование

Нет никакого вайб-инжиниринга

Это не вайб-инжиниринг  — это просто инжиниринг, даже если часть, связанная с программированием, будет выглядеть немного иначе.

Опубликовано

/

     
     

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

Термин прижился, и Twitter быстро заполонили сообщения о том, как ИИ радикально изменил программирование и скоро заменит всех инженеров-программистов. Хотя ИИ, несомненно, влияет на то, как мы пишем код, он принципиально не изменил нашу роль как инженеров. Позвольте мне объяснить.

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

Кодинг против инженерии

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

Разработка программного обеспечения — это программирование, интегрированное во времени, — Разработка программного обеспечения в Google: уроки, извлеченные из опыта программирования с течением времени

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

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

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

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

Настоящий вайб-инжиниринг

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

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

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

Когда может наступить это будущее? Неизвестно. Однако хорошим показателем может быть то, что инженеры уверенно ответили бы «да» на вопрос: «Вы бы с радостью пошли на поддержку системы, полностью состоящей из сгенерированных ИИ сервисов?». Пока что в ответах, похоже, преобладает «нет».

Заключение

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

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

Спасибо за чтение.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: