Skip to main content
QUICK REVIEW

[Paper Review] Low-Code Programming Models

Martin Hirzel|arXiv (Cornell University)|May 4, 2022
Software Engineering Research39 references4 citations
TL;DR

This paper unifies research on low-code programming models by analyzing visual programming, programming by demonstration, and programming by natural language, identifying domain-specific languages and the model-view-controller pattern as foundational unifying principles. It proposes a cohesive framework for building low-code tools, emphasizing reusable components, meta-tools, and end-user software engineering to empower both citizen and professional developers.

ABSTRACT

Traditionally, computer programming has been the prerogative of professional developers using textual programming languages such as C, Java, or Python. Low-code programming promises an alternative: letting citizen developers create programs using visual abstractions, demonstrations, or natural language. While low-code programming is currently getting a lot of attention in industry, the relevant research literature is scattered, and in fact, rarely uses the term "low-code". This article brings together low-code literature from various research fields, explaining how techniques work while providing a unified point of view. Low-code has the potential to empower more people to automate tasks by creating computer programs, making them more productive and less dependent on scarce professional software developers.

Motivation & Objective

  • To synthesize fragmented research on low-code programming across diverse fields and techniques.
  • To clarify the distinction between low-code, no-code, and end-user programming, positioning low-code as a broader, more inclusive paradigm.
  • To identify common programming model abstractions—especially domain-specific languages and MVC patterns—that unify low-code techniques.
  • To propose reusable building blocks and meta-tools to accelerate low-code tool development and improve interoperability.
  • To advocate for end-user software engineering practices in low-code environments to ensure long-term maintainability and quality.

Proposed method

  • Analyzes three core low-code techniques: visual programming languages (VPLs), programming by demonstration (PBD), and programming by natural language (PBNL), focusing on their fundamental building blocks.
  • Introduces a unifying framework based on domain-specific languages (DSLs) and the model-view-controller (MVC) pattern as a backbone for low-code systems.
  • Proposes the use of meta-tools (e.g., Blockly for VPLs, DreamCoder for PBD, Overnight for PBNL) to automate the creation of low-code tools.
  • Introduces meta-circular tools—low-code tools used to build other low-code tools—to enhance developer empathy and democratize tool creation.
  • Recommends reusable UI components (e.g., code canvas, palette, configuration pane) and shared AI components (e.g., semantic parsers, language models) to standardize and accelerate low-code development.
  • Advocates for integrating end-user software engineering (EUSE) practices—such as version control, assertions, and test coverage—into low-code environments to support long-term program maintenance.

Experimental results

Research questions

  • RQ1What are the common abstractions and unifying principles across diverse low-code programming models?
  • RQ2How can meta-tools and meta-circular design accelerate the development of new low-code platforms?
  • RQ3In what ways do visual programming, programming by demonstration, and programming by natural language complement each other when combined?
  • RQ4What role do domain-specific languages and the model-view-controller pattern play in enabling consistent, composable low-code systems?
  • RQ5How can end-user software engineering practices be integrated into low-code environments to ensure program quality and maintainability over time?

Key findings

  • The model-view-controller (MVC) pattern and domain-specific languages (DSLs) serve as a unifying backbone across visual programming, programming by demonstration, and programming by natural language techniques.
  • Combining low-code techniques—such as using PBD to resolve ambiguity in PBNL—can compensate for individual weaknesses and improve program accuracy.
  • Meta-tools like Blockly, DreamCoder, and Overnight enable faster, more consistent development of low-code platforms by automating repetitive implementation tasks.
  • Meta-circular low-code tools, such as VisPRO and Racket, empower developers to build and refine their own low-code tools, fostering deeper user empathy and innovation.
  • Reusing common UI components and AI modules (e.g., semantic parsers, language models) across low-code systems enhances consistency, reduces development time, and improves interoperability.
  • Integrating end-user software engineering practices—like version control, assertions, and test coverage—into low-code environments is essential for long-term program reliability and evolution.

Better researchstarts right now

From reading papers to final review, dramatically reduce your research time.

No credit card · Free plan available

This review was created by AI and reviewed by human editors.