
Что разработчики действительно думают о GitHub Copilot
4 июня 2025 г.Авторы:
(1) Xiyu Zhou, Школа компьютерных наук, Университет Ухан, Ухан, Китай (xiyuzhou@whu.edu.cn);
(2) Пенг Лян (автор -корреспондент), Школа компьютерных наук, Университет Ухан, Ухан, Китай (liangp@whu.edu.cn);
(3) Beiqi Zhang, Школа компьютерных наук, Университет Ухан, Ухан, Китай (zhangbeiqi@whu.edu.cn);
(4) Зенгьян Ли, Школа компьютерных наук, Центральный Китайский Университет, Ухан, Китай (Zengyangli@ccnu.edu.cn);
(5) Аакаш Ахмад, Школа компьютеров и коммуникаций, Университет Ланкастера Лейпциг, Лейпциг, Германия (ahmad.aakash@gmail.com);
(6) Mojtaba Shahin, Школа компьютерных технологий, Университет RMIT, Мельбурн, Австралия (mojtaba.shahin@rmit.edu.au);
(7) Мухаммед Васим, факультет информационных технологий, Университет Цзиваскила, Jyväskylä, Финляндия (muhammad.m.waseem@jyu.fi).
Таблица ссылок
Аннотация и 1. Введение
2. Методология и 2.1. Исследовательские вопросы
2.2. Сбор данных
2.3. Маркировка данных
2.4. Извлечение данных
2.5. Анализ данных
3. Результаты и интерпретация и 3.1. Тип проблем (RQ1)
3.2. Тип причин (RQ2)
3.3. Тип решений (RQ3)
4. Последствия
4.1. Последствия для пользователей Copilot
4.2. Последствия для команды Copilot
4.3. Последствия для исследователей
5. Угрозы достоверности
6. Связанная работа
6.1. Оценка качества кода, генерируемого Copilot
6.2. Влияние Копилота на практическое развитие и 6.3. Окончательное резюме
7. Выводы, доступность данных, подтверждения, заявление о вкладе и ссылки на кредит
АБСТРАКТНЫЙ
Благодаря недавнему развитию моделей искусственного интеллекта (ИИ) и крупных языковых моделей (LLMS), инструменты генерации кодов с AIBASE становятся практическим решением для разработки программного обеспечения. Github Copilot, программист AI Pare, использует модели машинного обучения, обученные большому корпусу фрагментов кода для создания предложений кода с использованием обработки естественного языка. Несмотря на популярность в разработке программного обеспечения, существует ограниченное эмпирическое свидетельство о реальном опыте практикующих, которые работают с Copilot. С этой целью мы провели эмпирическое исследование, чтобы понять проблемы, с которыми сталкиваются практикующие, при использовании Copilot, а также их основные причины и потенциальные решения. Мы собрали данные из 476 выпусков GitHub, 706 дискуссий GitHub и 142 постов переполнения стека. Наши результаты показывают, что (1) проблема операции и проблема совместимости является наиболее распространенными проблемами, с которыми сталкиваются пользователи Copilot, (2) внутренняя ошибка Copilot, ошибка сетевого соединения и проблема совместимости редактора/IDE идентифицирована как наиболее частые причины, а (3) ошибка, исправленная с помощью Copilot, изменение конфигурации/настройки, а также используйте подходящую версию. Основываясь на результатах, мы обсуждаем потенциальные области копила для улучшения и предоставляем последствия для пользователей Copilot, команды Copilot и исследователей.
1. Введение
В разработке программного обеспечения разработчики стремятся к достижению автоматизации и интеллекта, которую большая часть кода может быть создана автоматически с минимальными усилиями по кодированию человека. Несколько исследований (например, Luan et al. (2019), Robillard et al. (2010)) и программные продукты (например, рекомендации кода Eclipse (Eclipse, 2019)) были посвящены повышению эффективности разработчиков за счет разработки систем, которые могут рекомендовать и генерировать код. Большие языковые модели (LLMS) являются типом метода обработки естественного языка, основанной на глубоком обучении, способном автоматически изучать грамматику, семантику и прагматику языка и генерировать широкое разнообразие содержания. Недавно, с быстрой разработкой LLMS, инструменты генерации кодов AI, обученные большим объемам фрагментов кода, все чаще оказываются в центре внимания (например, AI-аугментированная разработка в Trends Gartner Trends 2024 (Gartner, 2023)), что позволяет программистам автоматически генерировать код с минимизированным человеческим усилием (Austin et al., 2021).
29 июня 2021 года Github и Openai совместно объявили о запуске нового продукта под названием Github Copilot (Github, 2024c). Этот инновационный инструмент оснащен Codex OpenAI, крупномасштабной модели нейронной сети, которая обучается на огромном наборе данных исходного кода и текста естественного языка. Цель Github Copilot-предоставить разработчикам расширенный код и возможности для создания, эффективно выступая в качестве «программиста Pair Pair Pair», который может помочь с задачами кодирования в режиме реального времени. Copilot был разработан для работы с широким спектром интегрированных средств разработки (IDE) и редакторами кода, такими как VSCODE, Visual Studio, Neovim и JetBrains (Github, 2024c). Собирая контекстную информацию, такую как имена функций и комментарии, Copilot может генерировать фрагменты кода на различных языках программирования (например, Python, C ++, Java), что может повысить производительность разработчиков и помочь им более эффективно выполнить задачи кодирования (IMAI, 2022).
С момента своего выпуска Copilot привлек значительное внимание в сообществе разработчиков, и до февраля 2024 года он имел в общей сложности 1,3 миллиона платных пользователей (Wilkinson, 2024). Многие исследования определяют эффективность и опасения по поводу потенциального воздействия на безопасность кода и интеллектуальную собственность (Pearce et al., 2022) (Bird et al., 2023) (Jaworski and Piotrkowski, 2023). В некоторых предыдущих исследованиях изучалось качество кода, генерируемого Copilot (Netistiren et al., 2022) (Nguyen and Nadi, 2022), в то время как другие изучали ее производительность в практической разработке программного обеспечения (Imai, 2022) (Barke et al., 2023) (Peng et al., 2023).
Тем не менее, в настоящее время не хватает систематической категоризации проблем, возникающих при практическом использовании Copilot с точки зрения разработчиков, а также причин, лежащих в основе, и решений для их решения. С этой целью мы провели тщательный анализ проблем
Столкнулся разработчиками программного обеспечения при кодировании с GitHub Copilot, а также с их причинами и решениями путем сбора данных из вопросов GitHub, дискуссий GitHub и постов переполнения стека, которые помогут понять ограничения копила в практических условиях.
Наши результаты показывают, что:(1)Проблема с операцией и проблема совместимости - наиболее распространенные проблемы, с которыми сталкиваются разработчики, (2)Внутренняя ошибка в сети, ошибка сетевого соединения и проблема совместимости редактора/IDE идентифицирована как наиболее частая причинаи (3)Ошибка, исправленная Copilot, изменить конфигурацию/настройку и использовать подходящую версию, являются преобладающими решениями.
Вклад этой работы в том, что:
• Мы предоставили двухуровневую таксономию для проблем использования Copilot в практике разработки программного обеспечения.
• Мы разработали одноуровневую таксономию по причинам проблем и решения для решения проблем.
• Мы отобразили отображение от выявленных задач в их причины и решения.
• Мы предложили практические руководящие принципы для пользователей Fopilot, команды Copilot и других исследователей.
Остальная часть этой статьи структурирована следующим образом: в разделе 2 представлены вопросы исследования (RQS) и процесс исследования. Раздел 3 предоставляет результаты и их интерпретацию. В разделе 4 обсуждаются последствия, основанные на результатах исследования. Раздел 5 разъясняет потенциальные угрозы для обоснованности этого исследования. В разделе 6 рассматривается соответствующая работа. Наконец, раздел 7 завершает эту работу вместе с будущими направлениями.
Эта статья есть
Оригинал