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.
翻译:大型语言模型,如 OpenAI 的代码和 Deepmind 的 AlphaCode 等大型语言模型,可以生成代码,解决自然语言表达的各种问题。这一技术已经在至少一个广泛使用的编程编辑分机GitHub Copil 上商业化。在本文中,我们探讨了使用大语言模型(LLM 辅助编程)的编程如何与程序员协助的先前概念相似和不同。我们参考了可公开获得的LLM 辅助编程的经验报告,以及先前的可用性和设计研究。我们发现,虽然LLM 辅助编程通过搜索和再利用,在编程、配对编程和编程方面有一些共同的特点,但在技术可能性和实际经验方面都存在根本差异。因此,LLM 协助编程应被视为一种具有自身独特特性和挑战的新的编程方式。最后,我们从用户研究中得到观察,其中非专业终端程序员使用LLM 辅助工具解决电子中的数据任务。我们讨论了在应用大语言模型对终端编程应用大模式时可能出现的问题和公开研究的挑战。