Команда AI for Devs подготовила перевод статьи Miguel Grinberg. Его позиция проста: генеративный ИИ в программировании не даёт реального ускорения, а лишь создаёт новые риски. А что думаете вы?
Меня часто спрашивают, пользуюсь ли я инструментами генеративного ИИ для программирования и что о них думаю. Поэтому я решил изложить свои мысли в статье — так проще отправлять людей сюда, чем каждый раз повторять одно и то же.
Из названия уже понятно, что это не текст «за ИИ». Но и не «против ИИ» тоже, по крайней мере, мне так кажется. Про- и анти-ИИ материалов и без меня хватает, так что писать ещё один в том же ключе смысла не вижу. Хотя у меня есть своё мнение, здесь я хочу поделиться исключительно личным опытом использования этих инструментов — с чисто технической точки зрения.
ИИ не ускоряет
Главная и самая важная причина, по которой инструменты генеративного ИИ мне не подходят, — они не делают меня быстрее. Всё очень просто.
Конечно, я могу попросить такие инструменты сгенерировать за меня код. А ещё удобнее было бы, если бы «агент» редактировал файлы прямо в проекте, пока я занимаюсь чем-то другим. Звучит заманчиво.
Но проблема в том, что отвечать за этот код буду я. Я не могу просто так вставить его в проект и надеяться на лучшее. Чтобы использовать сгенерированный код, я должен внимательно его просмотреть, понять каждую деталь и быть уверен, что смогу доработать его в будущем. Иначе — никак.
Ревью кода, вопреки распространённому мнению, — очень непростая задача. Проверка чужого кода у меня занимает как минимум столько же времени, сколько написание собственного, а то и больше. В нашей сфере даже есть известная фраза: «читать код труднее, чем писать». Кажется, первым это сформулировал Джоэл Спольски (создатель Stack Overflow и Trello) в статье Things You Should Never Do, Part I.
Кто-то может возразить, что код ИИ можно рассматривать как «чёрный ящик»: работает — и ладно, зачем проверять? Но это крайне безответственно. Если что-то пойдёт не так, отвечать буду я, а не ИИ. Идти на такой риск я не готов.
Особенно это критично в проектах, где есть договорные обязательства и деньги. Если меня наняли как профессионала, я должен соответствовать. А инструменты ИИ не помогают мне заработать больше или работать быстрее. Единственный путь «ускориться» — это снизить качество и увеличить риски. На такое я не пойду.
ИИ — не множитель эффективности
Некоторые утверждают, что инструменты генеративного ИИ помогают им работать быстрее и решать более сложные задачи. Но это лишь субъективные ощущения, подтверждений в цифрах нет. Возможно, кто-то и вправду быстрее справляется с ревью кода, чем я, но честно говоря, сомневаюсь. Скорее, такие люди просто просматривают код выборочно или вообще пропускают ревью — а для меня это неприемлемо.
Часто говорят ещё и так: мол, ИИ полезен, когда нужно писать на незнакомом языке или с новой технологией. Но именно в этом и есть кайф работы программистом — в постоянном обучении. Чем больше практикуешься, тем проще и быстрее идёт процесс. За последние годы мне приходилось изучать Rust, Go, TypeScript, WASM, Java и C# для разных проектов — и я бы не стал перекладывать эту задачу на ИИ. Да и не сэкономил бы на этом времени, ведь за результат всё равно отвечаю я.
Код ИИ и код человека — не одно и то же
Недавно я объяснял все эти доводы другу, а он спросил: «А как же open source-вклад в твои проекты? Ты ведь принимаешь чужой код — почему он подходит, а код ИИ нет?»
Честный ответ: сторонние pull request’ы тоже не экономят мне времени, потому что я всё равно провожу тщательное ревью. Но с живыми людьми интересно работать. Они сообщают о багах, предлагают улучшения, вносят вклад. Это источник идей и энергии. Ради таких взаимодействий я и люблю open source.
Друг не сдавался и предложил: «А если запустить пачку ИИ-агентов, чтобы они сразу закрыли все баги?» Казалось бы, «game changer». Но на деле — лишние расходы и только замедление. Даже если представить, что ИИ-инструменты уже достаточно умны (а это не так), узким местом остаюсь я, ведь всё равно обязан проверять каждую строку перед слиянием.
Хуже того, доступность ИИ привела к тому, что некоторые пользователи начали присылать «ленивые» PR’ы, сгенерированные на автомате. У них есть эффект «зловещей долины» — вроде бы код похож на нормальный, но при чтении ощущается искусственность. Я начинаю задавать авторам вопросы по странным участкам, потому что считаю их ответственными за свой вклад. Ответа почти никогда не получаю.
ИИ — не стажёр
Многие сторонники ИИ говорят: относитесь к инструменту как к стажёру. Но те, кто так считает, видимо, никогда не работали со стажёрами.
В начале стажировка действительно снижает вашу продуктивность: нужно много объяснять, всё тщательно проверять. Но в этом есть смысл — стажёры учатся. Вложенное время окупается: они становятся самостоятельными, и в итоге их берут в штат.
ИИ же — это стажёр с антероградной амнезией: каждый раз начинает с нуля, не помня предыдущего опыта. Такой «стажёр» бесполезен.
Заключение
Надеюсь, мне удалось объяснить, почему генеративные ИИ-инструменты неприменимы в моей работе.
На практике бесплатных обедов с ИИ не бывает. Те, кто заявляет, что он делает их быстрее и продуктивнее, просто сознательно снижают требования к качеству. Или же говорят так потому, что сами зарабатывают на продаже ИИ.
Русскоязычное сообщество про AI в разработке

Друзья! Эту статью перевела команда ТГК «AI for Devs» — канала, где мы рассказываем про AI-ассистентов, плагины для IDE, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!