Low-code programming (LCP) refers to programming using models at higher levels of abstraction, resulting in less manual and more efficient programming, and reduced learning effort for amateur developers. Many LCP tools have rapidly evolved and have benefited from the concepts of visual programming languages (VPLs) and programming by demonstration (PBD). With huge increase in interest in using large language models (LLMs) in software engineering, LLM-based LCP has began to become increasingly important. However, the technical principles and application scenarios of traditional approaches to LCP and LLM-based LCP are significantly different. Understanding these key differences and characteristics in the application of the two approaches to LCP by users is crucial for LCP providers in improving existing and developing new LCP tools, and in better assisting users in choosing the appropriate LCP technology. We conducted an empirical study of both traditional LCP and LLM-based LCP. We analyzed developers' discussions on Stack Overflow (SO) over the past three years and then explored the similarities and differences between traditional LCP and LLM-based LCP features and developer feedback. Our findings reveal that while traditional LCP and LLM-based LCP share common primary usage scenarios, they significantly differ in scope, limitations and usage throughout the software development lifecycle, particularly during the implementation phase. We also examine how LLMs impact and integrate with LCP, discussing the latest technological developments in LLM-based LCP, such as its integration with VPLs and the application of LLM Agents in software engineering.
翻译:低代码编程(LCP)是指利用更高抽象层次的模型进行编程,从而减少人工操作、提高编程效率,并降低业余开发者的学习成本。众多LCP工具快速发展,并受益于可视化编程语言(VPL)和编程演示(PBD)等概念。随着大语言模型(LLM)在软件工程领域的应用兴趣激增,基于LLM的LCP逐渐变得日益重要。然而,传统LCP方法与基于LLM的LCP方法在技术原理和应用场景上存在显著差异。理解用户在应用这两种LCP方法时的关键差异与特性,对于LCP提供商改进现有工具、开发新工具,以及帮助用户选择合适LCP技术至关重要。我们对传统LCP和基于LLM的LCP进行了实证研究,分析了过去三年Stack Overflow(SO)上开发者的讨论,进而探讨了传统LCP与基于LLM的LCP在特性及开发者反馈上的异同。研究结果表明,尽管传统LCP与基于LLM的LCP在主要使用场景上具有共性,但二者在软件开发全生命周期(尤其是实施阶段)的范围、局限性和使用方式上存在显著差异。我们还考察了LLM如何影响并与LCP融合,讨论了基于LLM的LCP的最新技术进展,例如其与VPL的整合,以及LLM智能体在软件工程中的应用。