Команда 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, делимся практическими кейсами и свежими новостями из мира ИИ. Подписывайтесь, чтобы быть в курсе и ничего не упустить!

Комментарии (24)


  1. panzerfaust
    02.09.2025 10:15

    Многие сторонники ИИ говорят: относитесь к инструменту как к стажёру. Но те, кто так считает, видимо, никогда не работали со стажёрами.

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


  1. bromzh
    02.09.2025 10:15

    Ну если не уметь пользоваться - то да, всё плохо.


    1. Huchlers
      02.09.2025 10:15

      Дело даже не в умении, луддиты неспособны мыслить в перспективе, у них память золотой рыбки. Никто уже не помнит, что лишь несколько лет назад никто тоже всерьёз не воспринимал каракули Dalle 1, а сейчас ИИ обманывает ценителей искусства на выставках. То же самое будет и здесь, со временем.


  1. YegorP
    02.09.2025 10:15

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


    1. My-name
      02.09.2025 10:15

      Согласен.

      Хотя и - тоже приходится ревьювить код от AI, выполняя свои проекты.

      Бывает и откровенная лажа. Вот здесь-то и пригождается белковый интеллект.

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

      что это здесь получаем/делаем.


    1. X-P0rt3r
      02.09.2025 10:15

      Примерно так. Но с одной оговоркой: ответ этого мега-IDE-поисковика-CLI имеет до некоторой степени вероятности характер! Это тот принципиальный момент, который совсем нельзя игнорировать.
      Вот я - тот самый консерватор-ретроград, луддит и хейтер-ИИ. И вообще не разработчик. Но даже мне приходилось ловить DeepSeek на вранье уже несколько раз. Причем на довольно несложных вопросах типа "Какая последняя версия %IDE% поддерживает %OS%?" Задавалось на английском - What is the latest...
      Тут, конечно, можно контраргументировать, мол, а поисковику ты верил слепо на 100%? Нет, конечно. Но выдачу поисковика можно было хотя бы навскидку ранжировать визуально. Скажем, ответы на Стэковерфлоу, Киберфоруме, MSDN - три по сути разные вещи. И глаз был наметан.
      Впрочем, поиск в последнее время (5+ лет) тоже неплохо сломан. И выбор инструмента для поиска - условный жабогадюкинг.


  1. Ioanna
    02.09.2025 10:15

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


  1. EmCreatore
    02.09.2025 10:15

    Да что он такое несёт ?!

    AI ускоряет невероятно.
    Мало того, он снизил или почти убрал необходимость в таких инструментах, как аппаратные отладчики и статические анализаторы типа Understand for C.

    А как он пишет комментарии — просто сказка. Мало того, что он правит код, он правит и комментарии. Такого объёма комментарии ни один живой программист писать не будет. А ведь именно комментарии делают всё понятным и простым.

    Что он может там такого писать, что ему не нравится код от AI? Пусть покажет. А то придумал какое-то абстрактное программирование. О какой производительности идёт речь, какого порядка метрики, какими цифрами выражается? Например, сколько раз он делает исправления синтаксических ошибок после себя и после AI на текстах в 1000 строк. AI их вообще не делает, работая через агентов.


    1. Green__Hat
      02.09.2025 10:15

      Поддерживаю.

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

      Напоминает холивары на девианте, бурлившие года три назад. Тоже каждый первый Дали и через одного Айвазовские.


      1. panzerfaust
        02.09.2025 10:15

        Напоминает холивары на девианте, бурлившие года три назад

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


        1. Green__Hat
          02.09.2025 10:15

          Ну то есть все пучком? Девиант в тонусе, заказы косяком, художники наглаживают пузики?

          А как там на Стаковерфлоу?


          1. panzerfaust
            02.09.2025 10:15

            Я вам про то, что качество контента ушло ниже плинтуса, а вы радуетесь, что кто-то остался без работы. Ну каждому своё.


      1. holgw
        02.09.2025 10:15

        Пока он там будет байты переставлять мы тут быстренько ручкаии раз-два раз-два

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


        1. EmCreatore
          02.09.2025 10:15

          Тут, конечно, есть нюанс. Да, иногда попросить просто заменить одну строчку на другую и просто удалить строчку знаимает у AI больше пары минут. Думаю это просто из-за недостаточности списка агентских инструментов. Но он недостаточен просто потому что это не напрягает. Я и не пытаюсь этот спиок калибровать под свой рабочий процесс. Я отдыхаю в эти минуты. Потому что успевать за генерацией AI реально устаешь как после качалки.


        1. bromzh
          02.09.2025 10:15

          Зачастую - да. Написать тесты? Контекст - сервис, но писанины кода очень много. Просто добавляешь файл и "напиши тесты". Ты точно знаешь, что надо сделать, но LLM точно быстрее напишет тебе тесты. Тоже самое про рефакторинг (вынести общие части в отдельный компонент/сервис), добавление адаптивности верстки и прочее.


      1. proxy3d
        02.09.2025 10:15

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

        То есть - сгенерировать мусорную картинку к статье не несущую смысла - да. Но полезную цельную задачу - нет, они выдают мусор.

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

        Для примера, мне надо было по детальному описанию (которое расписала сама же сетка, вплоть до цветов, расположения и прочего) сгенерировать изображение, чтобы наглядней объяснить текст.

        Вот Grok и ChatGpt

        Grok
        Grok
        ChatGPT
        ChatGPT

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

        То есть в итоге приходится делать вручную

        Я уже молчу про такое. Тут сетки вообще плыли при генерации. При том, что я просил только изображения без текста. Приходилось делать ручками, генерируя отдельно каждое изображение в Qwen и дальше вырезая, дорисовывая, меняя палитру и так далее. То есть от монотонной нудной части, когда одна такая картинка требует часа 2-4 не избавляет.

        Как итог, самым лучшим решением было использовать Qwen для генерации отдельных изображений на белом фоне и дальше ручками через фотошоп уже желать картинку. Так как все остальные сетки выдавали Айвазовского и Дали - то есть бесполезный шлак, который имеет 0 пользу.

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

        Были у меня попытки и поэтапно генерировать. Сначала базовую, потом просишь дополни тем то.. а он тебе просто качество улучшает.

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

        Ты хочешь нарисовать схему, а он тебе Айвазовского рисует.


    1. holgw
      02.09.2025 10:15

      он снизил или почти убрал необходимость в таких инструментах, как аппаратные отладчики и статические анализаторы

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

      Что-то я сомневаюсь что такой подход будет работать на нормальном энтерпрайзном проекте -- после переполнения контекстного окна пойдут галлюцинации и потеря деталей. Зачем нужен анализатор у которого надежность понижается с объемом анализируемого проекта? Если не секрет, на проектах какого размера вы подобный подход практикуете?


      1. EmCreatore
        02.09.2025 10:15

        Вы вообще видели, как агенты работают?
        Зачем им вся ваша кодовая база? Наполовину набитая API, которое никогда не используется.
        Он сначала дает команды поиска, но гораздо изощрённее, чем человек, потом ищет там, где поиск дал результат. В итоге ему хватает прочитать десяток файлов, и он в курсе всего нужного контекста.
        Это, кстати, ещё один козырь AI — он удаляет мусорный API, сделанный впрок или не для вашего применения. А это просто классно: вычищает код и делает его понятным.


        1. holgw
          02.09.2025 10:15

          Зачем им вся ваша кодовая база?

          Вы же сами сказали, что LLM заменяет статический анализатор. Разве API не надо анализировать?

          Наполовину набитая API, которое никогда не используется.

          Ужас какой-то. К счастью, ни разу с таким не сталкивался. Если вы имеете ввиду какие-то внутренние методы сервиса, то с этим и статический анализатор прекрасно справится -- подсветить неиспользуемые методы тривиальная задача, для этого не нужна LLM.

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

          Да ладно вам, агенты -- это просто обертка над LLM с набором команд для работы с файловой системой и набором харкод промптов. Просто посмотрите что агент шлет по сети в LLM, чтобы понимать как он работает.

          Ну и как же агент узнает конкретный кусок кода -- это именно API и что именно этот эндпоинт никогда не используется? Наверное, агенту придется в LLM этот вопрос закинуть вместе с куском кода, вы так не думаете?

          Ну и опять же, если мы говорим об альтернативе для статического анализа, то LLM в любом случае придется анализировать ВСЕ файлы, как бы сильно вы не верили в сверхъестественные возможности агента.

          Это, кстати, ещё один козырь AI — он удаляет мусорный API, сделанный впрок или не для вашего применения. А это просто классно: вычищает код и делает его понятным.

          Понял вас, это просто потрясающе, теперь моё отношение к кодинг ассистентам полностью поменялось. Удаление неиспользуемых методов это ведь такая частая и сложная инженерная задача. Жаль, что раньше не существовало инструментов которые могли бы прямо в среде разработки автоматизировать эту рутину, да?


          1. X-P0rt3r
            02.09.2025 10:15

            Удаление неиспользуемых методов это вдеь такая частая и сложная инженерная задача. Жаль, что раньше не существовало инструментов которые могли бы прямо в среде разработки автоматизировать эту рутину, да?

            Мало ли... Вдруг человек кодит в Блокноте? Там точно нет рефакторинга. Если только имена переменных менять через Ctrl+H.
            Тогда ему AI и впрямь будет чистым подспорьем.


    1. JuryPol
      02.09.2025 10:15

      AI ускоряет невероятно

      ...

      Что он может там такого писать, что ему не нравится код от AI? Пусть покажет. А то придумал какое-то абстрактное программирование. О какой производительности идёт речь, какого порядка метрики, какими цифрами выражается?

      А «невероятно ускоренные свидетели ИИ», наверное, могут показать невероятно быстро созданный продукт, которым можно пользоваться? Который можно даже посмотреть и оценить?

      Вот это была бы лучшая метрика. И очень впечатляющий аргумент.


      1. EmCreatore
        02.09.2025 10:15

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


  1. aragaer
    02.09.2025 10:15

    Мой подход -- "парное программирование c LLM". Правда приходится отдельно оговаривать "не надо мне писать портянки кода", плюс не всегда я готов вообще ему показывать свой реальный production код, поэтому приходится пересказывать и упрощать.

    Поскольку не всем парное программирование нравится, то и мой способ тоже не универсальный.


  1. Vitaly_js
    02.09.2025 10:15

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

    Тут можно провести параллель с индустрией развлечений. Последняя получила колоссальные возможности создавать потрясающие продукты. Но как всем этим распорядился бизнес? Конвейера по созданию качественных Цельных продуктов так и не случилось. Да и даже то, что сделано качественно плохо встроено в продукт. От чего сам продукт даже средним может не получится.

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

    Он считает, что ИИ не для него? Имеет право. Имеет возможность сам выбирать и диктовать бизнесу технологии, подходы? Классно. Но в тот же момент будет 10х проектов, где все это будет спускаться сверху и работник Должен будет всем этим пользоваться.