Vibe Coding не выполняет проверку корпоративной реальности

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

Создатель Java Джеймс Гослинг поделился мыслями об этом с новым стеком в начале этого года, сказав: «Как только ваш [vibe coding] Проект становится еще немного сложным, они всегда всегда выдувают свои мозги ». Он добавил, что кодирование Vibe «не готово для предприятия, потому что на предприятии, [software] должен работать каждый гребаный время ».

Поговорив с Саймоном Риттером, заместителем технического директора поставщика платформ Java Azul Systems, о генерации кода искусственного интеллекта, две фундаментальные проблемы продолжают всплыть, что предполагает, что скептицизм Гослинга обоснован.

Мусор, мусор

Первая проблема — это учебные данные. Инструменты кодирования искусственного интеллекта участвуют из существующих репозиториев кода — таких мест, как Github и Stack Overflow. Но вот в чем улов: большинство кодов там не очень хорошо, утверждает он.

«Вы могли бы предложить:« Ну, хорошо, давайте просто используем весь код на GitHub », — сказал Риттер, архитектор программного обеспечения, который на протяжении десятилетий строил корпоративные системы. «Это даст вам хороший код? Наверное, нет».

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

В информатике, мусор в средствах мусора. Тренируйте ИИ на посредственном коде, и вы получите посредственные результаты.

Английская проблема

Вторая проблема заключается в том, что английский — ужасный язык программирования, сказал Риттер новый стек.

Рассмотрим это предложение: «Цыпленка готова есть». Мы говорим о живой курице, готовой к ужину или о приготовленной курице, готовой к употреблению? Оба показания совершенно действительны, сказал он.

Или попробуйте эту инструкцию по магазинам: «Получите две пинты молока, и если у них есть яйца, получите 12». Двенадцать что — яйца или пинты молока? Неоднозначность запекается прямо на язык.

«Это действительно одна из причин, по которой у нас есть языки программирования в первую очередь», — объяснил Риттер. Языки программирования существуют именно потому, что естественные языки неоднозначны. Компилятор может интерпретировать «if (x> 5)» только в одну сторону. Там нет места для недоразумения.

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

Где ИИ на самом деле помогает

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

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

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

Для быстрых прототипов и личных проектов, таких как приложение Team Team Team Team, я атмосфера, кодированная с пионером DevOps Gene Kim, Vibe Coding работает нормально. Если он сломается, вы пожимаете плечами и попробуйте еще раз.

Но именно здесь становится важным доминирование на предприятии Java. Java не была разработана для быстрых экспериментов или одноразового кода. Он был построен в течение длительного времени — приложения, которые необходимо выполнять надежно в течение многих лет или десятилетий, поддерживаемые командами разработчиков, которые не были рядом, когда был написан первоначальный код.

Экосистема Java отражает эту реальность. По словам Риттера, приложения Enterprise Java обычно включают обширные рамки, строгие протоколы тестирования и подробные требования к документации. Это не очень хорошо; Они являются потребностями, когда ваш код обрабатывает миллионы финансовых транзакций или управляет медицинскими записями пациента.

Энтерпоратическая реальность

Развитие предприятия отличается. Когда вы создаете системы, которые обрабатывают данные здравоохранения, финансовые транзакции или критическую инфраструктуру, «пожимает плечами и попытка» не является вариантом.

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

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

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

Настоящее будущее

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

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

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

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэррил К. Тафт охватывает DevOps, инструменты разработки программного обеспечения и проблемы, связанные с разработчиком из своего офиса в районе Балтимора. Он имеет более чем 25 -летний опыт работы в бизнесе и всегда ищет следующий совок. Он работал … читайте больше от Дэррила К. Тафта

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *