[论文解读] What is it like to program with artificial intelligence?
这篇论文考察了LLM辅助编程如何与传统程序员辅助不同,讨论了可靠性和可用性,并报告了带有LLMs的最终用户电子表格编程。
Large language models, such as OpenAI's codex and Deepmind's AlphaCode, can generate code to solve a variety of problems expressed in natural language. This technology has already been commercialised in at least one widely-used programming editor extension: GitHub Copilot. In this paper, we explore how programming with large language models (LLM-assisted programming) is similar to, and differs from, prior conceptualisations of programmer assistance. We draw upon publicly available experience reports of LLM-assisted programming, as well as prior usability and design studies. We find that while LLM-assisted programming shares some properties of compilation, pair programming, and programming via search and reuse, there are fundamental differences both in the technical possibilities as well as the practical experience. Thus, LLM-assisted programming ought to be viewed as a new way of programming with its own distinct properties and challenges. Finally, we draw upon observations from a user study in which non-expert end user programmers use LLM-assisted tools for solving data tasks in spreadsheets. We discuss the issues that might arise, and open research challenges, in applying large language models to end-user programming, particularly with users who have little or no programming expertise.
研究动机与目标
- 评估LLM辅助编程与现有程序员辅助范式的契合度或差异。
- 总结在像 Copilot 这样的真实工具中,代码生成型LLMs的能力、局限性以及可靠性问题。
- 审阅可用性、设计研究和经验报告,以识别对程序员来说的关键可用性问题。
- 讨论在使用LLM辅助工具时,对最终用户编程和电子表格任务的影响。
提出的方法
- 综合公开可得的LLM辅助编程经验报告。
- 借鉴将AI辅助工具与传统方法进行比较的可用性与设计研究。
- 讨论代码生成模型的安全性、可靠性与安全性影响。
- 将LLM辅助编程与搜索、编译和结对编程等隐喻进行比较。
- 总结来自电子表格等非传统领域的最终用户编程研究的发现。
实验结果
研究问题
- RQ1LLM辅助编程与传统程序员辅助(如编译、结对编程、搜索与复用)之间的核心相似性与差异是什么?
- RQ2在实际使用中,使用LLMs进行代码生成会带来哪些可用性、可靠性和安全性挑战?
- RQ3在非传统领域(如电子表格)中的最终用户程序员如何体验LLM辅助编程?
主要发现
- LLM辅助编程在某些方面具有与编译、结对编程和通过搜索进行编程的相似性,但在技术可能性和用户体验方面存在根本性差异。
- 代码生成模型能够产生完整的函数体和测试用例,但可能会从训练数据中复制并产生错误或超出范围的代码。
- 可用性研究显示提示框架与调试是主要挑战,可能降低任务时间但对正确性影响参差不齐。
- 最终用户编程研究揭示在意图规格、代码正确性、可理解性方面的问题,以及对非专家用户更好入门和工具的需求。
- 像GitHub Copilot这样的商业工具展示了在起点和API发现方面的好处,但有效性取决于提示质量和用户对生成代码的处理。
- 可靠性和安全性问题包括易受攻击传播、过度依赖,以及对AI生成代码进行代码审查和测试的必要性。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。