Команда AI for Devs подготовила перевод резонансной статьи о том, почему использование кода, сгенерированного ИИ, может сделать разработчика слабее, а не продукКоманда AI for Devs подготовила перевод резонансной статьи о том, почему использование кода, сгенерированного ИИ, может сделать разработчика слабее, а не продук

[Перевод] Почему код, сгенерированный ИИ, делает вас плохим программистом

Команда AI for Devs подготовила перевод резонансной статьи о том, почему использование кода, сгенерированного ИИ, может сделать разработчика слабее, а не продуктивнее. Автор жёстко критикует AI-ассистентов, рассуждает о деградации навыков, зависимости от инструментов и будущем профессии.


Вероятно, это не проблема — если только вам не важны саморазвитие и гордость за свою работу.

Сразу уточню: когда в этом тексте я пишу «использование кода, сгенерированного ИИ», я имею в виду ситуацию, когда ИИ пишет код за вас. Я не говорю об использовании ИИ как инструмента для обучения — чтобы лучше разобраться в языках программирования и библиотеках и затем улучшать код, который вы пишете сами. (На этот счёт у меня тоже есть мнение.) Но если вы пользуетесь такими инструментами, ограничиваясь описательными именами методов или комментариями с расплывчатым описанием логики, а затем позволяете ИИ дописать реализацию, или если вы полагаетесь на ИИ, чтобы он разобрался и объяснил вам ваш же код, чтобы вам не пришлось этого делать самим, — значит, этот текст адресован именно вам.

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

Вы лишаете себя возможностей для обучения

В ранние годы интернета появилось уничижительное выражение script kiddie — так называли людей, которые «взламывают» компьютерные системы, не понимая, что именно они делают и как это работает. Это те, кто скачивает инструмент или скрипт, который обещает взломать пароль, получить доступ к чужому компьютеру, изуродовать сайт или добиться какой-нибудь другой сомнительной цели. Если скрипт действительно работает, такие «детишки» начинают считать себя настоящими хакерами.

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

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

Очевидно, что невозможно стать лучше в каком-то деле, если ты этим делом не занимаешься. Вы не улучшите свою игру в шахматы, если не будете играть партии. Вы не станете лучшим хоккеистом, сидя на скамейке запасных. Вы не научитесь играть на пианино, просто слушая альбомы Янни, которые крутит ваша мама — в какой-то момент вам придётся играть самому. Точно так же ваши навыки разработчика никогда не будут расти, если вы не пишете код.

Навыки, которые у вас уже есть, могут атрофироваться

Но что, если вы уже довольны своим уровнем как программист? Что, если вы просто хотите переложить на ИИ скучную работу? — заскэффолдить новый проект, написать функцию вычисления факториала или merge sort (почему людям так нравится заставлять ИИ писать факториал и сортировку слиянием?), сгенерировать бойлерплейт — в общем, рутину.

Возможно, вам кажется, что в этом нет ничего страшного. В конце концов, сеньоры делегировали занудные задачи джунам задолго до того, как LLM стали «искоркой в глазу» Сэма Альтмана. В чём же разница?

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

Во-вторых, это базовый факт разработки ПО (и жизни в целом): если вы достаточно долго что-то не делаете, вы начинаете забывать, как это делается. Если вы давно в индустрии, вспомните первый язык программирования, который вы выучили. Для меня это был Pascal. Я не уверен, что сегодня смог бы написать на Pascal хотя бы одну строку, которая была бы синтаксически корректной, не говоря уже о чём-то полезном. Ещё одно упражнение: попробуйте программировать один день без подсветки синтаксиса и автодополнения и прочувствуйте, насколько жалко вы себя ощущаете без них. Если вы похожи на меня, вы обнаружите, что эти «помощники» уже вытянули из вас значительную часть знаний, устранив необходимость запоминать даже до смешного простые вещи. А теперь представьте, насколько беспомощными вы станете, если ИИ вообще избавит вас от необходимости писать код. Если вы перестанете писать код сами — даже скучные его части, — вы начнёте ржаветь. Вы будете забывать. Работать над интересными фрагментами станет сложнее, потому что вы утратите фундамент, на котором строятся более продвинутые навыки.

Представьте, что завтра производитель тренажёров выпускает новый продукт под названием «Искусственная сила», обещая, что вы сможете «прокачаться» и «разорвать следующую тренировку» с их потрясающим новым помощником — роботом, который поднимает штангу за вас. Если вы начнёте на него полагаться, как, по-вашему, со временем изменится ваш максимальный жим лёжа? И что, по той же логике, ассистенты для написания кода сделают с вашей способностью писать код и рассуждать о нём со временем?

2e1ca4d6474660c9d06a10a843dceb0e.png

Вы можете стать зависимы от своего будущего заменителя

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

Это откровенно хищническое поведение. Точно так же, как религиозные культы занимаются индоктринацией буквально с пелёнок, чтобы обеспечить постоянный приток новых адептов, ИИ-компании прекрасно понимают: если подсадить разработчиков до того, как они впервые откроют текстовый редактор, это гарантирует пожизненный поток подписочных платежей. Уверен, они прекрасно осознают, что с закоренелыми седобородыми вроде меня — теми, кто пишет абсурдно длинные тирады и рисует дурацкие комиксы о том, как сильно мы ненавидим ИИ и компании, которые его впаривают, — каши не сваришь. Поэтому их взгляд устремлён на будущие поколения разработчиков. Вероятно, они видят их как армию ИИ-зависимых код-котят, которые не смогут даже вывести «Hello World» без продолжительного чат-сеанса, в ходе которого будут объяснять боту, что именно нужно сделать.

67ab9305aee73f1a86e6e15aa494c292.png

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

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

Короткое отступление: а вы вообще владеете кодом, сгенерированным ИИ?

Я не юрист и не играю его по телевизору, но я подписан на Hello Future Me на Nebula и отчётливо понимаю, что, мягко говоря, вокруг вопроса владения ИИ-сгенерированными произведениями существует серьёзная правовая неопределённость. Пока основная дискуссия крутится вокруг художественных работ, но нет никаких причин считать, что это не относится и к коду. (К тому же, если вы такой же чудак, как я, то программирование вы и так воспринимаете как форму художественного самовыражения.)

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

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

Ваш код не будут уважать

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

Зато с большой долей уверенности можно сказать другое: если вы пользуетесь такими инструментами, вряд ли кто-то, кроме других ИИ-зависимых код-котят, будет впечатлён вами как программистом. В разработке ПО есть элемент искусства — создание цельной и аккуратной кодовой базы, поиск изящных решений сложных задач, завоевание уважения коллег. Всё это должно приносить каждому программисту чувство гордости и удовлетворения. Что вам приятнее — радоваться собственным достижениям или достижениям предсказательного текстового движка, который пишет код за вас? Возможно, я просто старомоден; может быть, такой взгляд на процесс программирования делает меня частью меньшинства — вроде брюзги, который жалуется, что Бэтмен «раньше танцевал, а теперь нет». Но, честно говоря, именно это — главная причина, по которой я лично никогда не встрою генерирующие код ИИ в свою среду разработки, даже если в итоге это сделает меня неконкурентоспособным на рынке труда.

Я не хочу заказывать картину и делать вид, что это я художник. Я хочу быть художником.

92f03280241cdf32eed53e30429a6aea.png

Я понимаю, что приложение для планирования стирки, которое вы пишете для гостиничного бизнеса или чем бы вы ни зарабатывали на жизнь, вряд ли когда-нибудь попадёт в список Фабьена Санглара для глубокого разбора изящества кода. Но разве это настолько плохая цель, к которой стоит стремиться? Разве гордость за свою работу не делает её более приятной? Как можно уважать собственный код — или ожидать, что его будут уважать другие, — если вы даже не написали его сами?

Причины использовать код, сгенерированный ИИ

Вы мазохист и предпочитаете код-ревью самому программированию

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

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

Вы на самом деле не хотите быть программистом

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

Честно говоря, я уверен, что именно о таком будущем крупные корпорации мечтают, пуская слюни. О мире, где их экосистемы с высокими стенами контролируют не только распространение приложений, но и само их производство. Есть идея для нового приложения? Просто скажите ИИ из App Store, чего вы хотите, и он вывалит результат прямо на ваше устройство, позволив большому корпо забрать себе сочные 100 % подписочных платежей, которые вы и все остальные выложите за новое приложение. Это куда приятнее прежних 30 %, которые были их долей в «досмутные времена», когда эти назойливые разработчики приложений продолжали настаивать, что они вообще-то приносят какую-то ценность процессу.

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

Вы верите, что мы вступили в новую посттрудовую эпоху, и доверяете корпорациям провести нас в неё

58453b278b193fb312dc4280fa62e9a8.png

Если в маловероятном случае вы уже настолько глубоко хлебнули этого кул-эйда и не сбежали из этой статьи после первых пары абзацев, то, по правде говоря, мне больше нечего вам сказать. Я бы посоветовал вам почитать «1984», «451 градус по Фаренгейту» или «Лавину» — вам, скорее всего, понравятся их образы будущего, и у вас появится что-то, чего можно с нетерпением ждать.

Русскоязычное сообщество про AI в разработке

d066a81482f4fe77b245ab293d3beffc.png

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

Источник

Возможности рынка
Логотип Sleepless AI
Sleepless AI Курс (AI)
$0.03869
$0.03869$0.03869
+8.77%
USD
График цены Sleepless AI (AI) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.