Кроме того, ИИ-кодер вряд ли поможет фиксить баги, всплывающие в готовом давно работающем коде. Потому что очевидные баги давно пофиксили тестировщики, а если оно год работало и тут вдруг упало, то баг весьма неочевидный.
Не совсем так. Неважно, когда всплыл баг. Если вы можете примерно локализовать участок кода, где баг возникает, и рассказать ИИ-помощнику словами, что с кодом не так (что вы ожидаете и что он выдает по факту) - ИИ его пофиксит. В этом плане все зависит от сложности задачи, а не от того, новый надо код писать или существующий править.
Однако мыслима ли такая ситуация? Проект, где надо писать свой код, пилят пятеро программистов. Их начальника вызывает начальник повыше и говорит: теперь вас будет не пятеро, а двое, а взамен вот вам ИИ, который пишет код.
Во-первых, выше уже упомянули парадокс Джевонса. Начальник скорее скажет "Вас будет по-прежнему пятеро, но задач в 20 раз больше" - потому что в любой достаточно крупной компании
план работ хотелки расписаны на годы вперед, только успевай по клавишам долбить. Во-вторых, программистов и уговаривать особо не надо - они и сами с радостью свалят работу по нажатию на кнопки на кого-то другого. Как правило, основное препятствие - это как раз работодатель. Я знаю три основных метода работы с ИИ:
1. Вопрос-ответ в чате. Самый простой, но и самый тупой. Работа над сложным проектом невозможна в принципе. Есть у меня, скажем, код функции, которая вызывает 2 другие функции. Я хочу, чтобы ИИ что-то с ними сделал. Новую фичу реализовал. Для этого надо внести изменения во все три функции. Мои действия: написать ИИ, что у меня есть, привести код функций, для этого - найти их в трех разных файлах и скопипастить оттуда, подождать ответ от ИИ, прочитать его, потом ОСОЗНАТЬ, потом скопипастить и вставить обратно. И это идеальный случай - когда ИИ все понял правильно. А если нет? То скопипастить, запустить, увидеть, что это не то, объяснить, что не так... Все эти действия займут столько времени, что быстрее самому написать. Помощь ИИ станет выгодной по времени только при условии, что он будет обрабатывать очень большой объем за раз, то есть реализовывать какую-то крупную фичу. Да вот беда, с ростом размера задачи вероятность галлюцинаций растет. При том размере задачи, когда этот метод будет выгоден, галлюцинации сожрут остатки профита.
2. Помощник в IDE (как копилот). Я не пользовался именно копилотом, но пользовался Code Whisperer (амазоновский продукт). Это удобно. Он анализирует уже написанный код (весь проект целиком), и пытается угадать, что я хочу написать дальше. Это прям очень удобно. Мой код он очень хорошо угадывал, но у меня был простенький проектик на javascript для души. Ему нельзя напрямую ничего сказать, но можно дать как бы подсказку - написать комментарий типа "тут будет функция, считающая символы в строке", и он попытается угадать код этой функции.
3. Доступ по API. К своему стыду, не пробовал пока этот метод, но слышал о нем очень хорошие отзывы. Один человек описал это так: "как будто у тебя в команде есть 2 - 3 очень толковых джуна, которые понимают тебя с полуслова".
Все три метода требуют подключения через интернет к удаленному серверу с ИИ - и для крупных компаний это прям красный флаг. Строгое нельзя.
Для первого метода есть решения типа "развернуть сервер с чат-ботом во внутренней сети" - у нас такое есть, но это самое бесполезное решение. Есть ли аналоги для методов 2 и 3 - я не знаю. Не слышал пока.
Могут ли двое с ИИ ваять код с той же скоростью, как пятеро без ИИ?
Тут, пожалуй, от стадии развития проекта зависит. На новом проекте, который только начался - пожалуй да, на старом проекте, где кода уже очень много, и новый писать не особо нужно, скорее менять существующий - сложно сказать. Я уже не уверен.
-- 19.05.2025, 22:56 --(Оффтоп)
Причем ответ на вопрос, не нанять ли нам программиста, звучал удивительно похоже на нынешние дискуссии об LLM: расписать техзадание для человека, не знакомого с нашими задачами, нашим телескопом и контекстом работы вообще, не будет сильно быстрее, чем написать код самому.
Я читал рассказ какого-то астронома о подобном опыте. То ли
Pphantom здесь писал, то ли я это на хабре видел. Или еще где. Пробовали - не понравилось. Даже если человек знает нужную математику, за то время, пока объяснишь физические и астрономические нюансы, уже и сам напишешь что надо. Я помню, читал воспоминания Винера о Манхэттенском проекте. У них не было компьютеров, они наняли около тысячи, что ли, бухгалтеров, и посадили их на счетах считать. Сначала долго получалась ерунда. Потом выяснили, что бухгалтеры по привычке округляли результаты до сотых. Потом долго пытались их отучить. А это 1000 человек, и надо всем объяснить, а потом еще проконтролировать. Каждого. Подозреваю, что подобного рода нюансы могут и у астрономов быть, да вы и сами их только что описали...
-- 19.05.2025, 23:06 --Разумеется, никто не захочет остаться совсем без программистов.
Когда появились автоматические АТС, все с радостью избавились от телефонисток. И от программистов избавятся, если появится насколько мощный ИИ. Но мы еще не там. Такого ИИ даже на горизонте не видно. Даже нет пока оснований надеяться, что увидим хотя бы на горизонте при нашей жизни.
Очевидно, что использовать ИИ-программиста может только человек-программист.
Пока да, а самое печальное, что это ситуация вида "всё или ничего". Вы либо полностью отпускаете вожжи и доверяете ИИ (мы пока не там), либо вам надо
вникать в то, что ИИ вам выдает. То есть вам надо прочитать и осознать его код - а это не мгновенно. Я попросил ИИ написать мне функцию на javascript, которая рассчитывает ход для игры 2048. Он выдал мне код, строк 30 - 40, а так как я javascript не очень хорошо знаю, я сходу даже не понял, правильный этот код или нет. Поэтому я начал писать его сам, и только когда сам написал и увидел, что у меня плюс-минус тоже самое в итоге получается, понял, что его код корректен. И какой выигрыш по времени? Нулевой... В нетривиальных случаях может и еще хуже оказаться. И даже в идеальном случае итоговая скорость разработки ограничена вашим навыком чтения и понимания.