Ирландский инженер-программист Адди Османи не против вайбер-кодирования. И все же этот разработчик Google Gemini (который также работает над Chrome) также остро чувствует ограничения ИИ.
«В Google мы также используем Vibe-кодирование — я считаю, что оно отлично подходит для прототипов, MVP, действительно полезно для обучения…», — сказал Османи в подкасте в начале ноября. «Но по большей части при кодировании Vibe приоритет отдается скорости и исследованию, а не таким вещам, как правильность и удобство обслуживания».
Османи выступал в подкасте Zed Industries (компании, основанной в 2022 году для создания инструментов для программистов и возрождения популярного текстового редактора Atom под названием «Zed»). И у него есть уникальная точка зрения на то, как ИИ влияет на мир кодирования, как благодаря наблюдению за внедрением инструментов ИИ в Google, так и из отчетов со всей отрасли.
Генеральный директор Google Сундар Пичаи заявил в апреле, что «более 30%» кода, который проверяется в Google, — это «люди, принимающие решения, предложенные ИИ». В том же месяце CNBC сообщила оценку генерального директора Microsoft Сатьи Наделлы, согласно которой «вероятно, 20–30 % кода, который сегодня находится внутри наших репозиториев, и некоторые из наших проектов, вероятно, написаны программным обеспечением».
Но создает ли ИИ еще больше проблем на своем пути, заставляя программистов сталкиваться с более длительными проверками кода и новым набором задач, когда они пытаются решить оставшиеся части, «проблему 70%»?
Обманчиво убедительная природа кода, сгенерированного ИИ
Короче говоря, ИИ может быстро создать большую часть кода для приложения, для функции, сказал Османи в подкасте, но создание строительных лесов и очевидных шаблонов может отнимать столько же времени, сколько и раньше. Сюда входят важные детали, такие как интеграция с производственными системами, а также «ваша аутентификация, ваша безопасность, ваши ключи API…», а также крайние случаи и вещи, требующие дополнительной отладки.
Получение пользовательского интерфейса с помощью нескольких подсказок «обманчиво убедительно… Вы можете получить что-то, что выглядит функционально. Но, насколько вы знаете, это можно скрепить клейкой лентой за кулисами».
Это может быть отражено в последних опросах разработчиков. «Хотя ситуация с усыновлением действительно хорошая, доверие на удивление низкое, и оно снижается…», — добавил Османи. «Есть много исследований, в том числе [Google’s] Отчет DORA AI, который показал, что, хотя распространение растет, доверие на самом деле падает… Благосклонные мнения о кодировании ИИ упали с 70 до 60 процентов за два года. А около 30% людей практически не доверяют коду, созданному ИИ, или вообще не доверяют ему.
«Это довольно дико, учитывая, насколько мы сейчас на это полагаемся…»
В сентябре Османи опубликовал новую книгу под названием «Vibe Coding: The Future of Programming».
Решение «проблемы 70%» в программировании с помощью искусственного интеллекта
Так как же разработчикам справиться с этими последними 70%? Османи говорит, что одним из фундаментальных шагов является «найти время, чтобы вернуться назад и понять, что было создано».
Османи предполагает, что, возможно, появился новый популярный шаблон проектирования программного обеспечения — шаблон «два шага назад». («Вы чувствуете себя хорошо» после использования подсказок в вашем любимом инструменте для создания минимально жизнеспособного продукта и попробуйте «подкинуть к нему еще две или три подсказки», — объясняет Османи…) Обычно это приводит к тому, что небольшие изменения — скажем, исправление ошибки — каким-то образом ухудшают ситуацию.
«Исправление сломает что-то еще, вы попросите ИИ исправить эту проблему, и это создаст еще две проблемы. Промойте, повторите. Иногда это пять новых проблем».
Османи считает, что помимо наличия проверок переменных и возможности отката к предыдущим состояниям разработчики также должны быть готовы самостоятельно изменять свою кодовую базу. «Это начинается с понимания сгенерированного кода».
В конечном итоге это указывает на более серьезную проблему в наших рабочих процессах. Он также читал статьи, предупреждающие об «использовании ИИ как опоры» — о возможности того, что мы не понимаем ничего, кроме нашей текущей кодовой базы. «Наши фундаментальные навыки критического мышления, наша способность учиться на ошибках, как бы исчезают или разрушаются».
На сентябрьской конференции Lead Dev в Нью-Йорке Османи спросил, стоит ли командам пробовать спринтерские дни без искусственного интеллекта, «просто чтобы сохранить свои навыки».
Но другая идея — создать файл, фиксирующий решения, принятые в ходе работы, и извлеченные уроки, возможно, попросив агента «извлекать информацию после каждой отдельной задачи». Для вашего ИИ-агента это образует «цикл комплексного обучения», но он делает больше, чем просто улучшает качество вашего следующего раунда подсказок ИИ. Он стал для вас своего рода якорем памяти, «файлом, к которому вы можете вернуться и изучить…»
Важность лучшего контекстного проектирования
Это приводит к его следующему предложению, которое более непосредственно касается «проблемы 70%». «Я считаю, что инвестиции в полное понимание того, что означает контекстная инженерия, действительно очень полезны», — сказал Османи. Инструменты искусственного интеллекта генерируют лучший код, если им предоставлена вся необходимая информация о проекте.
В одном документе Anthropic указывается, что контекст включает в себя историю сообщений, а также системные инструкции, а также внешние данные и способы подключения инструментов к внешним системам.
Османи говорит, что это «убедиться, что ваша модель, ваш агент, ваши инструменты имеют всю информацию, необходимую для успешного выполнения задачи. Речь идет о том, чтобы выйти за рамки простого «подсказывания и молитвы» и предоставить ей как можно больше информации, которую вы можете оптимально вписать в свое контекстное окно, чтобы увеличить шансы на то, что все действительно пойдет хорошо…»
«Для многих инструментов, которые люди используют в наши дни, я думаю, теперь немного проще использовать этот контекст — то есть документы, URL-адреса, примеры, любые из этих файлов уценки, которые могут иметь дополнительный контекст о проблемах, вашей кодовой базе или о том, как работает ваша команда.
«Я считаю, что людям полезно помнить об этом, если они пытаются преодолеть отметку в 70%».
Это также означает, что написание тестов для кода может стать еще более важным, поскольку они могут служить циклом обратной связи для агентов ИИ, сказал Османи из Lead Dev.
Тем не менее, здесь применимо то же предостережение: человеку необходимо четко понимать любые тесты, генерируемые ИИ. «Тесты — это подстраховка. Они снижают риски при кодировании ИИ. И я склонен думать, что если вам повезет, ваша команда уже довольно давно инвестирует в тесты».
«Если у вас нет приличного покрытия тестами, возможно, неудивительно, что кто-то скажет: «Ну да, мы можем просто использовать ИИ, чтобы написать тесты за нас». И это нормально, пока в процессе есть человек, который проверяет эти тесты.
«Потому что, если ты думаешь, что просто выберешься из проблемы, я волнуюсь». (Смеется.) «Я волнуюсь за тебя, друг…»
Действительно ли кодирование с помощью искусственного интеллекта экономит время?
Итак, в конечном итоге, становятся ли программисты более продуктивными, используя инструменты искусственного интеллекта? Османи видел оценки, основанные на самооценке прироста производительности, внутреннем опросе Google и даже показателях строк кода, написанного ИИ, — но считает, что истинный прирост составляет… менее 2х. «Эта тема меня очень сильно волнует», — говорит он.
Когда кто-то в Твиттере сообщает о гораздо более высоких цифрах, «если вы увеличите масштаб, часто это компании, которые занимаются разработкой чего-то совершенно нового. У них нет технического долга, у них нет всего багажа, который обычно приходит с традиционной разработкой программного обеспечения, над чем-то реальным и существующим какое-то время. И если вы создаете что-то с нуля, у вас, вероятно, не будет такой большой сложности с самого начала».
Как проверка кода становится новым узким местом
Как это происходит в реальном мире? «Возможно, они смогут выполнить на 20% больше задач, чем могли раньше. Но мы также начинаем видеть побочные эффекты некоторых из них… Использование ИИ для увеличения скорости означает, что больше кода выбрасывается за стену, и кто-то должен его проверять. На самом деле мы начинаем видеть, что проверка кода становится новым узким местом… Это будет интересная задача, потому что у нас, как правило, ограниченное количество старших инженеров, которые проверяют этот код. И у них будет ограниченное время… Я не думаю, что на данный момент шаблоны проверки кода полностью развиты».
Несмотря на все это, есть несколько способов, которыми ИИ может быть действительно полезен. Агенты «на самом деле очень сильны как просто товарищи по обучению» — возможно, они общаются с ними в перерыве от кодирования, ищут свежие перспективы и лучшие подходы. Османи использует его при возврате к старой кодовой базе. «Иногда вы думаете, что у вас есть хорошая мысленная модель того, как работает система, но почти всегда есть вещи, которые вы, возможно, пропустили или которые другие люди добавили с течением времени… Попытка использовать ИИ для формирования большего количества этих связей — большего количества узлов — я думаю, может быть очень, очень мощным средством, просто как средство обучения».
И после разговора с различными компаниями, разрабатывающими инструменты, Османи говорит: «На горизонте есть то, как мы можем начать предлагать проактивные предложения по кодированию ИИ…»
Хотя он считает, что пройдет некоторое время, прежде чем подобные инструменты смогут превратиться в то, что мы используем каждый день…
WebReduce
- IBM анонсирует и демонстрирует свою новую «агентскую IDE», называя ее «IDE, ориентированной на искусственный интеллект», которая может «координировать работу специализированных агентов…»
- Создатель Swift/Mojo Крис Лэттнер обсуждает место Mojo (и Python) в мире искусственного интеллекта.
- Соучредитель крупной игровой студии Rockstar о том, могут ли дипломированные специалисты писать видеоигры, и о своем взгляде на то, как ИИ изменит мир.
- Являются ли сотрудники, использующие ИИ, новой ИТ-угрозой? Использование искусственного интеллекта широко распространено, но «соблюдение политики низкое», поскольку неутвержденные приложения и персональные устройства создают «теневые ИТ-площадки» для атак.
ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Дэвид Кассель — гордый житель района залива Сан-Франциско, где он освещает новости технологий уже более двух десятилетий. На протяжении многих лет его статьи появлялись повсюду на каналах CNN, MSNBC и Wall Street Journal Interactive… Читать далее Дэвида Касселя