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 the huge increase in interest in using large language models (LLMs) in software engineering, LLM-based LCP has begun 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和基于LLM的LCP进行了实证研究,分析了过去三年间Stack Overflow(SO)上开发者的讨论内容,进而探索了两者在特性与开发者反馈方面的异同。研究发现:虽然传统LCP与基于LLM的LCP具有共同的主要使用场景,但它们在适用范围、局限性及软件开发全生命周期(特别是实施阶段)的使用方式上存在显著差异。我们还探讨了LLM如何影响并融入LCP,讨论了基于LLM的LCP最新技术进展,例如其与VPL的集成以及LLM智能体在软件工程中的应用。