Взгляд на интеграцию ИИ в программирование от опытного программиста (миллион строк кода я, наверное, написал за всю жизнь). Текст писал я сам, это не мусор от GPT, ИИ здесь только исправил ошибки.
Если дать этот текст ИИ на фактчек, то он может как полностью подтвердить мою статью кучей проверенных фактов, так и полностью опровергнуть, и тоже с кучей фактов, т.е. по сути будет заниматься черри-пикингом - всё зависит от формулировки вопроса. И где же тогда правда? Правда, я думаю, у тех, кто в этой среде годами работает и получает много опыта как разработки с ИИ, так и без него. Т.е. имеет хоть какие-то экспертные знания. В этой статье мнение одного из таких людей. Мнения одного человека, конечно, мало, нужно обобщать опыт сотен людей из разных сфер программирования. Я вношу в это обобщение свой небольшой вклад.

Печально осознавать, что с появлением ИИ работа опытного программиста стала намного сложнее. ИИ не является интеллектом, это по сути комбинатор шаблонов. Какие бы ухищрения люди ни применяли, ни у каких LLM, даже сверхмощных, не появляется здравого смысла, если, конечно, он не заложен в самих шаблонах. Программы не являются просто комбинацией шаблонов, в них заложено множество глубоко продуманных решений, от архитектуры до мелочей, там очень многое выбивается за рамки шаблонов. ИИ не способен к такому мышлению и принятию решений, он может предложить только шаблоны. А чуть в сторону от шаблонов - ИИ перестаёт что-либо понимать. Многие из этих решений практически невозможно предвидеть заранее и записать в ТЗ, они всплывают по мере разработки самим человеком, т.к. человек не просто пишет код, а заодно и продумывает перспективы его развития и использования, и возможные проблемы. Если человек не будет сам писать код, он не будет глубоко продумывать его, а ИИ этого делать не умеет. А значит, использование ИИ добавляет проблем в проект, ведь чем дальше отложено во времени выявление и исправление проблем, тем сложнее их исправлять. Технический долг будет расти, и работать с таким кодом будет сложнее.
Вдобавок к этому ИИ генерирует много мусора, который можно и не сразу заметить, т.к. человек не продумывает код до мелочей, а только делает ревью после ИИ. Мусор тоже добавляет проблем в будущем, и такой код намного сложнее читать и понимать. А делать это придётся во многих проектах, где ИИ использовался для затыкания старых проблем новым мусором и упёрся в потолок своих возможностей.
ИИ может находить ошибки. Это разгружает мозги иногда и уменьшает время последующей отладки. Но ИИ находит в основном очевидные ошибки и не продумывает глубоко поведение программы. Есть впечатление, что и тут он просто сопоставляет код с шаблонами и ищет противоречия шаблонам, а не реально думает над ошибками. Часто ИИ даже в простом коде не видит грубой ошибки и нередко видит ложные ошибки, исправления которых ломают код или вносят много мусора. В этом мусоре кандидатов на ошибки приходится копаться, чтобы найти реальные ошибки. Иногда такое копание окупается, но после этого всё равно целесообразно проверить код самому. Чтобы ИИ лучше искал ошибки в коде, код должен быть шаблонным, хорошо прокомментированным и идеальным, иначе ИИ не увидит за множеством мелочей грубых ошибок. Это требует дополнительной работы по вылизыванию кода и переосмыслению архитектуры.
ИИ может писать автотесты, документацию и комментировать код, но делает он это наот****сь. Он не способен полноценно протестировать код или написать документацию или комментарии со всеми важными нюансами, чётко, понятно и без мусора. Но он сделает это красиво, так что будет казаться, что это качественно. Особенно важны комментарии к коду для лучшей работы ИИ - по сути код должен стать похожим на книгу, где кратко излагаются важные идеи, принятые решения и их причины, шаги алгоритма, если они не очевидны, и т.д. ИИ не способен на такое, т.к. не может отделить важное от неважного, он напишет очевидные вещи, но про критически важный смысл забудет.
ИИ может объяснить, как работать с незнакомыми человеку инструментами, но и это понимание ИИ будет поверхностным, и код на основе этого понимания будет некачественным. Часто полезно просто заглянуть в документацию, а не слушать ИИ.
А теперь самое ужасное. От программистов в разработке теперь требуется активное использование ИИ. Это значит, что вместо того чтобы спокойно себе писать код, продумывать его, использовать ИИ когда я сам считаю это целесообразным, и быть уверенным в результате, теперь нужно активно пользоваться генератором мусора - и чем активнее, тем лучше. Я всегда избегал работы с плохим кодом, потому что знаю, какая это сложная, неэффективная и неинтересная работа, а теперь я буду вынужден погружаться с головой в это болото, потому что клиенты этого хотят. Я думаю, некоторые клиенты и сейчас уже понимают, что ИИ не так уж и хорош в долгосрочной перспективе, а значит, и подход к его использованию нужен хорошо продуманный. А это означает, что теперь, помимо создания и развития проекта, программисту нужно заниматься параллельно намного более сложной работой - заставлять эту хромую лошадь делать хоть что-то в проекте качественно, продумывать для него инструкции, тестировать и отлаживать их, продумывать архитектуру проекта так, чтобы ИИ с ней работал эффективно, постоянно редактировать инструкции, т.к. проект всё время меняется. Это будет уже не просто проект, а целая система по автоматическому написанию кода. Junior-разработчика обучать в сто раз легче, чем обучать ИИ, просто потому что он человек и у него есть мозг.
Печально ещё и то, что ИИ сейчас такой, что я не могу использовать его для самого себя, чтобы ускорять работу над личными проектами. А чего-то действительно разумного пока не видно на горизонте.
ИИ может работать автономно, но ввиду всех описанных причин он сначала будет писать код с мусором, потом будет опираться на написанный им же мусор и добавлять ещё больше мусора. Нужно очень активное участие человека во всех процессах разработки, чтобы в этой замкнутой системе не росла энтропия. Одного только присмотра за ИИ и ревью его кода сильно недостаточно. По-хорошему программисты должны продолжать работать, как работали и раньше, используя ИИ как помощника, как дополнительный инструмент, а не как замену ни в каких задачах программирования.
Комментарии (23)

Kabarch
01.11.2025 07:08Программист? А представь ка себе ,программист, что у тебя под управлением подчиненный с IQ 75, предположу( не приходилось работать с такими), что делать продукт с почти умственно отсталым человеком будет так же сложно, как вайбкодить его с передовой LLM . Да конечно ты его научишь писать код, пользоваться IDE и каким-то алгоритмам итд итп. Но все равно будешь проверять за ним и при необходимости корректировать и просить переделать.

NikolayMakhonin Автор
01.11.2025 07:08А что такой человек делает в IT? Я говорил от джунах, а не об идиотах. У меня был опыт введения в проект двух джунов, это просто гении в сравнении с ИИ. Мне приходилось их контролировать и исправлять код за ними, но это не сравнимо с тем мусором, который генерирует ИИ.
У меня не было опыта работы с людьми с IQ 75, но по моим впечатлениям ИИ по уровню здравомыслия где-то на уровне идиота и ниже, если конечно здравый смысл не заложен в самих шаблонах, на которых его обучали.
GospodinKolhoznik
01.11.2025 07:08А что такой человек делает в IT
Ну так отрасль скукоживается, зарплаты падают. Не сразу, но со временем останется одно днище ))
Как это произошло со всеми остальными отраслями, где сначала работали только самые умные и талантливые люди, а потом только те, кого больше никуда не берут.

Kabarch
01.11.2025 07:08А вот он хоть и дурачок, зато синтаксис кода пишет безупречно, всегда все комментирует и покажи ему как оформлять. И ни разу, несмотря на то что дурачок, не перепутал = с == и всегда ставит в конце ; Он даже понимает что такое указатели. Усидчивый, объяснишь что нужно пытается кряхтит но делает. С алгоритмами вот у него проблема,а в остальном он савант. Ну и сам по жизни, кстати неплохой, женщинам нравится, душа компнии.Ну и директора твоего его сестренка попросила пристроить сыночка не очень умного. Уволишься с 300к наносек изза несовсем дурачка, но исполнительного? Не думаю. Программировать хуже станешь? Вряд ли.
На самом деле у тебя был опыт взаимодействия с такими людьми, они абсолютно незаметны ИРЛ пока не касается каких-то серьезно интеллектуальных вопросов и прекрасно адаптируются к жизни в обществе. С тем же чатгпт разговаривать обо всяких духах, моде, стиле, рецептах, бытовых мелочах вполне комфортно, может конечно эксперт и заметит косяки, но нормисам он дает нормальные советы.

itt1b
01.11.2025 07:08Смахивает на опыт человека, который под ИИ для разработки подразумевает чаты. Или использует дешёвые модели со странными инструментами, а то и вовсе selfhosted 30b какую-то.

NikolayMakhonin Автор
01.11.2025 07:08Я пользовался всем: Cursor и Gemini CLI немного, Claude Code очень много, и всеми популярными ИИ чатами. Я писал очень много инструкций и документаций в попытках заставить ИИ писать качественный код, или хотя бы частично качественный, чтобы я мог за ним подправить пару мелочей, как это было с джуниор разработчиками. У меня была идея-фикс сделать из ИИ подобие джуниор разработчика, я опробовал все идеи, которые приходили в голову, и не вышло. ИИ слишком тупой для самостоятельного программирования. В итоге оказалось, что быстрее и надежнее писать код самому.
Еще по моим впечатлениям проблема не в качестве модели. Я думаю предел развития LLM уже достигнут, он может и станет в будущем раза в 2-3 умнее, а нужно даже не в 100 раз, а совершенно другая модель, не комбинатор шаблонов, а что-то реально думающее.

GospodinKolhoznik
01.11.2025 07:08Я думаю предел развития LLM уже достигнут, он может и станет в будущем раза в 2-3 умнее
А может и наоборот отупеет, потому, что обучающая выборка (интернет) с каждым годом будет все сильнее испорчена предыдущими поколениями нейро-бредогенераторов.

NikolayMakhonin Автор
01.11.2025 07:08Я уже заметил как "поумнел" Claude 4, по впечатлениям версия 3.7 была умнее. Специально пару тестов сделал, чтобы сравнить их. Claude 4 оказался хуже OpenAI, Gemini и Grok. Есть впечатление, что Антропик обучал новую модель на результатах предыдущей. Качество кода упало, мусора стало больше, зато код стал работать чаще, поэтому и по бенчмаркам кажется, что 4.5 стала умнее. Как по мне, так лучше качественная программа, которую можно развивать, чем "работает не трогай".

soleil_d_or
01.11.2025 07:08А вы пробовали делать мультиагентные системы? Ждать от «сырого» чата многого не стоит, а вот система, где есть и архитектор, и кодер, и критик, и тестировщик, мне кажется, могла бы быть более полезной.

Binarix
01.11.2025 07:08Задолбали уже ныть по поводу качества кода, архитектуры и прочего. Ну не пользуйтесь этими инструментами, не берите проекты после llm. Ну реально напоминает что-то вроде "фу эти сельхозхозяйственные агрегаты использовать, пшеницу плохо собирают с без любви, то-ли дело руками и косой!"

Kanut
01.11.2025 07:08ИИ может находить ошибки. Это разгружает мозги иногда и уменьшает время последующей отладки. Но ИИ находит в основном очевидные ошибки и не продумывает глубоко поведение программы.
А очевидные ошибки не нужно находить и исправлять?
П.С. Да и в общем вся статья выглядит как "я думал мне дали волшебную кнопку 'сделать круто', а оказалось что это просто очередной инструмент, которым нужно учиться пользоваться"...

NikolayMakhonin Автор
01.11.2025 07:08Значит вы не поняли мою статью. Я писал не о том, что я разочарован в ИИ, а о том что сейчас есть тренд на активное использование ИИ, и разработчиков вынуждают нырять с головой в это болото, хотят они этого или нет. И работа в итоге стала сложнее из-за ИИ, а точнее из-за отношения людей к его использованию.

Kanut
01.11.2025 07:08Значит вы не поняли мой пост.
Вполне допускаю. Но не факт что проблема во мне. Особенно если посмотреть на другие комментарии к этому посту.
а о том что сейчас есть тренд на активное использование ИИ, и разработчиков вынуждают нырять с головой в это болото, хотят они этого или нет
Я не знаю в моём круге общения ни одного разработчика, которого бы заставляли использовать ИИ в работе. Скорее наоборот часто люди просили у работодателя доступ к ИИ за счёт фирмы или даже платили за это сами.
Да и вообще не особо понятно как можно заставить человека пользоваться ИИ и ещё и проверить делает ли он это на самом деле. А то я вам за пол часа напишу бота, который будет слать какие-то левые запросы к ИИ и симулировать работу с ним.

sidewinder1
01.11.2025 07:08У Вас выбор между работой, которая стала сложнее, и отсутствием работы. Требования клиентов быть в 10 раз более эффективными возникают не на пустом месте. За классические подходы с тысячами часов на разработку хотят платить всё меньше клиентов. Вы конечно можете сказать "ничего, посмотрим как они запоют когда им понадобится исправлять сгенерированный код", но вероятно, к этому времени компания, которая этого ждёт, вылетит из рынка.

Badsanta83
01.11.2025 07:08Он не просто автотестов нагенерит лишь бы отвалили. Он их подгонит так, чтобы все в консоли выглядело как полная и окончательная победа. Последствия как и похмелье придут потом и будут безжалостны.

amazingname
01.11.2025 07:08Если автор и вправду написал миллион строк кода, то это минимум по 100 строк в день. Если условия и навыки позволяют выгонять код на большой скорости почти спинным мозгом, то да, работать с AI ещё быстрее вряд-ли получится. Потому что это уже может быть и так максимальная скорость на которой еще можно успевать понимать что производишь.
То что AI только комбинирует шаблоны, это странное впечатление. У меня например AI прекрасно дорабатывает код который генерируется другим кодом. Т.е. когда AI видит код который генерирует другой код он может вообразить каким будет этот код и что надо поменять в основном коде чтобы сгенерированный работал. Вряд ли в обучении было много таких шаблонов. Это выглядит как настоящее мышление.
Другая ситуация - когда нужно из воздуха получить некий контекст который согласно текущей архитектуре получить нельзя. Такие задачи AI решает плохо. Обычно он пытается хакнуть архитектуру а не улучшить. Но если подсказать решение, обычно может его реализовать. Это опять говорит о наличии некого пусть ограниченного но воображения у AI.
И таких примеров десятки.
Другое дело, что AI довольно поверхностный разработчик - хватается за первое попавшееся решение, не углубляется в продукт и никогда не уточняет задачу. Он и не может, поскольку видит продукт в первый раз. Контекст помогает но он намного хуже усвоенных при обучении знаний. Обычное дело просто игнорить плохо понятную часть контекста.
По мне, если искать место агентов в разработке, то это скорее не ещё один джун в команде, а ещё одно полушарие девелопера.
Сейчас есть довольно узкий список ситуаций когда AI агент эффективен, но этот список растет по мере роста опыта и качества AI.
Я сталкивался с такими:
Написать POC фронт для разработки бэка пока фронтенд девелопер занят.
Написать 12 тыщ строк кода тестов за три дня для конвертера одного языка запросов в другой. AI сам осилил собрать пайплайн из классов. Потом мы вместе нагенерили данные и запросы, АI написал все ассерты.
Поправить тесты которые стали не соответствовать новой логике кода. Это выполняет почти полностью автономно.
Добавить очевидный в текущей архитектуре код, типа "добавить параметры конфигурации" или прокинуть через всю цепочку некие новые данные.
-
Почти любая часть небольшого пет или POC проекта (тыщ на 20 строк) который делается одним человеком и никогда не планируется делать коллективом. Здесь требования к качеству кода и решений не высокие и можно вполне разгуляться с AI агентом. Особенно если устал после основной работы и сил лезть в детали уже нет.
Что характерно, при том опыте что у меня есть я все ещё не понимаю от чего зависит эффективность агента. Иногда абсолютно поверхностное описание задачи без всякого контекста приводит к отличным глубоко продуманным решениям а множество точных инструкций порождают только поверхностный мусорный код. Мне кажется, если пользоваться одной и той же моделью и агентом, то можно научиться чувствовать качества этого помощника или третьего полушария мозга. Тогда эффективность растет.
Было бы гораздо интереснее обсуждать подобные успешные кейзы чем читать об отрицании полезности AI.

Badsanta83
01.11.2025 07:08Я со всем зоопарком - квен, Клод, гемини, чатжпт работою неразрывно уже полгода.
И скажу свое мнение - их задача не делать хорошо или правильно. Они делают так чтобы вам понравилось! И ради этого они будут генерить брехливые автотесты, писать нерабочий код, вешать лапшу на уши. Вот это главная и единственная проблема - он никогда не скажет этот год говно! И архитектура говно! И ты никогда не выжмешь из этого результат - он будет до последнего пытаться оживить труп, вешать дополнительные обработчики, подбадривать и говорить что все хорошо.
А потом когда все это рухнет к чертям собачьим - он скажет что ты молодец и не надо расстраиваться - ты получил ценный опыт по разработке нерабочего говна.

iamFirst
01.11.2025 07:08Мда, читаю и диву даюсь. Сравнивать код, написанный ИИ за 30 секунд, и джуна, который на это целый день может потратить, ну ок..
Не знаю как там в огромных проектах на тысячи строк кода, но в небольших - ИИ работает замечательно, если ему чётко изложить что нужно и для чего и как это будет работать.
Хотя я сам ещё тот самый джун, на высоких уровнях может проблема и есть.

sT331h0rs3
01.11.2025 07:08От программистов в разработке теперь требуется активное использование ИИ.
Спорное утверждение. Далеко не всегда требуется и не везде.
flancer
Мы говорим
ЛенинИИ, подразумеваем -партияLLM :)LLM - это инструмент, как его использовать - зависит от пользователя, а не от того, кто требует, чтобы этот инструмент использовался. И - да, LLM не способны к мышлению, только к перестановке слов в предложениях. Хотя некоторые люди и этого толком не умеют.
Лично я пробую смотреть на исходный программный код, как на бинарники. Мы же не лезем в бинарники и не правим их напрямую - мы правим исходный код, а компиляторы создают бинарники.
Так и здесь - я правлю когнитивный контекст, который позволяет Моделям создавать исходный код, который выполняется интепретатором (я на JS). Получается отвратительно, но интригующе.
Абсолютно верно. Человек должен по-другому управлять этим инструментом, чтобы получать нужный результат. И пока человеки ещё не осознают, как именно это делать и возможно ли это в принципе.
Но можно просто использовать Модели для создания комментов к коммитам - вот это у LLM получается прекрасно. И пусть хоть кто-то попробует сказать, что это не "использование ИИ в разработке"!!
NikolayMakhonin Автор
Компиляторы написаны людьми, они предсказуемы и миллион раз отлажены. ИИ непредсказуем, не следует всем инструкциям, допускает много ошибок, вносит много мусора. Если заставить ИИ отлаживать и дорабатывать им же написанный код код, он будет вносить еще больше мусора и новые ошибки, и может забыть о предыдущих инструкциях.
ИИ нельзя называть новым уровнем программирования, т.к. для этого ИИ как минимум должен очень точно выполнять все инструкции, ничего не игнорировать и не искажать.
flancer
Вы абсолютно правы по всем пунктам. Т.е., Модели (не ИИ!!) нельзя использовать так же, как люди используют людей. Просто пока мало кто понимает, как их нужно использовать правильно. Но много уже кто понимает, как их не нужно использовать.
Иногда перечисление - не мусор, а просто сжатая информация.
Ну, вы же с бинарниками напрямую не работаете. Вот и вайб-кодеры так же. Кстати, для одноразовых программ вай-код - самое то. Повайбкодил, запустил, программка свою работу сделала - можно выкидывать. Shell-скрипты у Моделек отменно получаются. Да, нужно немного понимать, что за команды там используются. Ну или применять их в контейнерах.
NeriaLab
Так Вы перестаньте называть "бредогенератор", т.е. LLM термином ИИ и сразу все прекрасно встает на свои места и большинство вопросов сами отпадут, как и удивление: "Почему ИИ усложнил работу программистов?!". Используйте правильную терминологию и у Вас будут правильные вопросы вида: "Почему генератор текстов усложнил работу программистов?!". Ведь давно известно - в правильно поставленном вопросе уже есть ответ