Результаты исследования GitHub показывают, что код, созданный с помощью Copilot, обладает повышенной функциональностью и улучшенной читаемостью, имеет более высокое качество и получает большее количество одобрений, чем код, созданный без него.
Год назад исследование GitHub показало, что 85 % разработчиков чувствовали себя увереннее в своем коде, а 88 % - в потоке, когда использовали GitHub Copilot, см. Copilot Chat Improves Confidence and Enjoyment
Совсем недавно Statista.com сообщила, что 44 % разработчиков используют GitHub Copilot на регулярной основе. Такой уровень использования говорит о том, что нам необходимо изучить вопрос о том, лучше или хуже качество кода, написанного с использованием Copilot, чем без него.
Чтобы ответить на этот вопрос, команда GitHub Customer Research провела рандомизированное контролируемое исследование, чтобы понять, насколько функциональным, читаемым, надежным, сопровождаемым, лаконичным и заслуживающим одобрения является код, написанный с помощью GitHub Copilot.
Для исследования ученые GitHub привлекли 202 разработчика с опытом работы на Python не менее пяти лет. Половине из них случайным образом был предоставлен доступ к GitHub Copilot, а другой половине было предписано не использовать никаких инструментов искусственного интеллекта. Всем участникам было предложено выполнить одно и то же задание по написанию конечных точек API для веб-сервера, а полученный код был оценен с помощью модульных тестов. С точки зрения функциональности юнит-тесты показали, что код, написанный с помощью Copilot, был явно лучше: 61 % кода разработчиков прошел все 10 юнит-тестов по сравнению с 39 % среди тех, кто не использовал Copilot.

Следующей частью исследования была экспертная оценка, которую проводили разработчики, чей код прошел все 10 модульных тестов. Им было поручено в случайном порядке провести слепую экспертизу анонимных материалов, как написанных с использованием GitHub Copilot, так и без него. Рецензенты обнаружили, что в коде, написанном с использованием GitHub Copilot, было меньше ошибок в читабельности кода. В частности, при использовании GitHub Copilot на одну ошибку в коде приходилось 18,2 строки кода, а без него - только 16,0.
В блоге, где обсуждаются эти результаты, Джаред Бауэр пишет
Это равносильно тому, что с GitHub Copilot в среднем на 13,6 % больше строк кода без ошибок в коде (p=0,002). Это может привести к экономии в реальном времени, поскольку каждая из этих ошибок в коде требует действий со стороны разработчика. Например, без использования GitHub Copilot команды могут столкнуться с увеличением количества комментариев или предложений на 13 %, что накапливается со временем.
Рецензенты также оценили код, написанный с использованием GitHub Copilot, как более читабельный на 3,62 %, более надежный на 2,94 %, более поддерживаемый на 2,47 % и более лаконичный на 4,16 %. Хотя эти различия были небольшими, они были статистически значимыми и способствовали улучшению кодовой базы.
На заключительном этапе рецензенты проверили, насколько велика вероятность одобрения кода, написанного с помощью Copilot, по сравнению с кодом, написанным без такой помощи, и обнаружили, что это так:

Эксперты на 5 % чаще одобряли код, написанный с помощью GitHub Copilot, прокомментировал Бауэр:
В реальных условиях это означает, что разработчики, использующие GitHub Copilot, быстрее пишут код, готовый к слиянию, что ускоряет время исправления ошибок или развертывания новых функций.
Расшифровывая результаты исследования, Бауэр пишет:
Хотя количество коммитов и измененных строк кода было значительно выше в группе GitHub Copilot, средний размер коммита был немного меньше. Это говорит о том, что GitHub Copilot позволил разработчикам проводить итерации кода для улучшения его качества.
Исследовательская группа пришла к выводу, что, поскольку разработчики тратили меньше времени на приведение кода в функциональное состояние, они могли больше сосредоточиться на улучшении его качества. Этот вывод согласуется с предыдущими результатами исследования, согласно которым разработчики чувствовали себя более уверенно, используя Copilot.