С появлением ИИ работа опытного программиста стала намного сложнее. ai.. ai. vibecoding.. ai. vibecoding. будущее it.. ai. vibecoding. будущее it. говнокод.. ai. vibecoding. будущее it. говнокод. ИИ.. ai. vibecoding. будущее it. говнокод. ИИ. искусственный интеллект.. ai. vibecoding. будущее it. говнокод. ИИ. искусственный интеллект. качество кода.. ai. vibecoding. будущее it. говнокод. ИИ. искусственный интеллект. качество кода. Ненормальное программирование.. ai. vibecoding. будущее it. говнокод. ИИ. искусственный интеллект. качество кода. Ненормальное программирование. Программирование.

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

С появлением ИИ работа опытного программиста стала намного сложнее - 1

Печально осознавать, что с появлением ИИ работа опытного программиста стала намного сложнее. ИИ не является интеллектом, это по сути комбинатор шаблонов. Какие бы ухищрения люди ни применяли, ни у каких LLM, даже сверхмощных, не появляется здравого смысла, если, конечно, он не заложен в самих шаблонах. Программы не являются просто комбинацией шаблонов, в них заложено множество глубоко продуманных решений, от архитектуры до мелочей, там очень многое выбивается за рамки шаблонов. ИИ не способен к такому мышлению и принятию решений, он может предложить только шаблоны. А чуть в сторону от шаблонов – ИИ перестаёт что-либо понимать. Многие из этих решений практически невозможно предвидеть заранее и записать в ТЗ, они всплывают по мере разработки самим человеком, т.к. человек не просто пишет код, а заодно и продумывает перспективы его развития и использования, и возможные проблемы. Если человек не будет сам писать код, он не будет глубоко продумывать его, а ИИ этого делать не умеет. А значит, использование ИИ добавляет проблем в проект, ведь чем дальше отложено во времени выявление и исправление проблем, тем сложнее их исправлять. Технический долг будет расти, и работать с таким кодом будет сложнее.

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

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

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

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

А теперь самое ужасное. От программистов в разработке теперь требуется активное использование ИИ. Это значит, что вместо того чтобы спокойно себе писать код, продумывать его, использовать ИИ когда я сам считаю это целесообразным, и быть уверенным в результате, теперь нужно активно пользоваться генератором мусора – и чем активнее, тем лучше. Я всегда избегал работы с плохим кодом, потому что знаю, какая это сложная, неэффективная и неинтересная работа, а теперь я буду вынужден погружаться с головой в это болото, потому что клиенты этого хотят. Я думаю, некоторые клиенты и сейчас уже понимают, что ИИ не так уж и хорош в долгосрочной перспективе, а значит, и подход к его использованию нужен хорошо продуманный. А это означает, что теперь, помимо создания и развития проекта, программисту нужно заниматься параллельно намного более сложной работой – заставлять эту хромую лошадь делать хоть что-то в проекте качественно, продумывать для него инструкции, тестировать и отлаживать их, продумывать архитектуру проекта так, чтобы ИИ с ней работал эффективно, постоянно редактировать инструкции, т.к. проект всё время меняется. Это будет уже не просто проект, а целая система по автоматическому написанию кода. Junior-разработчика обучать в сто раз легче, чем обучать ИИ, просто потому что он человек и у него есть мозг.

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

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

Автор: NikolayMakhonin

Источник

Rambler's Top100