Новое исследование о влиянии GitHub Copilot и искусственного интеллекта на разработку программного обеспечения говорит к некоторым негативным результатам.
В исследовании «Coding on Copilot«, подготовленном компанией GitClear изучается качество и сопровождаемость кода, написанного с помощью ИИ, по сравнению с тем, который был бы написан человеком. Другими словами: «Похож ли ИИ-код на тщательный, доработанный вклад Senior-разработчика или больше напоминает хаотическую работу краткосрочного подрядчика?».
Ответ на этот вопрос кратко изложен в уже в аннотации к исследованию:
«Мы обнаружили обескураживающие тенденции в области поддерживаемости. По прогнозам, в 2024 году отток кода (Code churn) — процент строк, которые были исправлены или обновлены менее чем через две недели после написания — удвоится по сравнению с базовым уровнем 2021 года, предшествовавшим появлению искусственного интеллекта. Кроме того, мы обнаружили, что процент «добавленного кода» и «copy/paste кода» растет в пропорции к «обновленному», «удаленному» и «перемещенному» коду. В этом отношении код, сгенерированный ИИ, напоминает странствующего контрибьютора, склонного нарушать DRY-принципы в посещаемых репозиториях».
Это служит сильным дополнением к выводам некоторых других исследований, в том числе исследованию самого GitHub от 2022 года. В нем, в частности, говорилось, что «разработчики, использовавшие GitHub Copilot, выполняли задачи значительно быстрее — на 55% — чем разработчики, не использовавшие GitHub Copilot». Помимо производительности, исследование GitHub также показало положительный эффект в плане удовлетворенности разработчиков и экономии умственной энергии.
Исследование GitClear показало три наиболее значительных изменения, связанных с ростом Copilot и которые касаются «исправленного», «перемещенного» и «скопированного/вставленного» кода:
- Растущий отток: «Суть в том, что использование Copilot сильно коррелирует с «ошибочным кодом», выкладываемым в репозитории».
- Меньше перемещенного кода подразумевает меньше рефакторинга, меньше повторного использования: «В сочетании с ростом кода, помеченного как Copy/Paste, остается мало места для сомнений в том, что текущая реализация ИИ-помощников препятствует повторному использованию кода. Вместо рефакторинга и работы над DRY («Не повторяй себя») кодом эти помощники предлагают повторить существующий код одним нажатием кнопки».
- Больше скопированного/вставленного кода означает будущие головные боли: «Пожалуй, нет большего бича для долгосрочной сопровождаемости кода, чем скопированный/вставленный код. По сути, когда повторяется строка кода, не содержащая ключевого слова, автор кода признается: «У меня не было времени оценить предыдущую реализацию». Повторное добавление кода вместо его повторного использования оставляет будущим сопровождающим обязанность выяснить, как консолидировать параллельные пути, реализующие многократно востребованную функциональность».
Статья заключает: «Как Copilot изменит то, что значит быть разработчиком? Нет сомнений, что с ростом популярности ИИ мы вступили в эпоху, когда строки кода добавляются быстрее, чем когда-либо прежде. Вопрос, который лучше задать в 2024 году: кто будет убирать этот беспорядок?».