中文

厘清 GitHub Copilot 的使用实践、挑战与期望特性

软件工程 2023-09-13 v1

摘要

随着机器学习的进步,人们对用于自动补全源代码的 AI 赋能工具的兴趣日益增长。GitHub Copilot 已在数十亿行开源 GitHub 代码上训练,是此类工具之一,自 2021 年 6 月发布以来使用量不断增加。然而,从实践者的视角出发,鲜有研究致力于理解在编程中使用 Copilot 自动补全源代码时的实践、挑战与期望特性。为此,我们通过收集和分析来自 Stack Overflow (SO) 与 GitHub Discussions 的数据开展了实证研究。我们检索并人工收集了 303 篇与 Copilot 使用相关的 SO 帖子以及 927 篇 GitHub 讨论。我们识别了使用 Copilot 时的编程语言、集成开发环境 (IDE)、与 Copilot 一同使用的技术、所实现的功能、益处、局限与挑战。结果表明,实践者使用 Copilot 时:(1) 与 Copilot 一同使用的主要编程语言是 JavaScript 和 Python,(2) 与 Copilot 一同使用的主要 IDE 是 Visual Studio Code,(3) 与 Copilot 最常一同使用的技术是 Node.js,(4) Copilot 实现的首要功能是数据处理,(5) 用户使用 Copilot 的主要目的是辅助生成代码,(6) 使用 Copilot 的显著益处是有用的代码生成,(7) 实践者使用 Copilot 遇到的主要局限是集成困难,(8) 最常见的期望特性是 Copilot 能集成到更多 IDE 中。我们的结果表明,使用 Copilot 犹如一把双刃剑,需要开发者在决定是否使用时仔细考量各方面。我们的研究提供了基于实证的基石,可资开发者与实践者参考,并为未来研究奠定基础。

关键词

引用

@article{arxiv.2309.05687,
  title  = {Demystifying Practices, Challenges and Expected Features of Using GitHub Copilot},
  author = {Beiqi Zhang and Peng Liang and Xiyu Zhou and Aakash Ahmad and Muhammad Waseem},
  journal= {arXiv preprint arXiv:2309.05687},
  year   = {2023}
}

备注

Preprint accepted for publication in International Journal of Software Engineering and Knowledge Engineering, 2023. arXiv admin note: substantial text overlap with arXiv:2303.08733