This commit is contained in:
2025-06-05 22:07:12 +02:00
parent 069473ae02
commit 97fba407ce
6300 changed files with 711849 additions and 8 deletions
@@ -0,0 +1,218 @@
file:: [Hirzel_2022_Low-Code Programming Models.pdf](file://C:/Users/david/Zotero/storage/JGDXBIXM/Hirzel_2022_Low-Code Programming Models.pdf)
file-path:: file://C:/Users/david/Zotero/storage/JGDXBIXM/Hirzel_2022_Low-Code Programming Models.pdf
- Low-code programming promises an alternative: letting citizen developers create programs using visual abstractions, demonstrations, or natural language
ls-type:: annotation
hl-page:: 1
hl-color:: green
id:: 6464b288-5d89-4b29-bd9d-eb6c88f1371e
- 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
ls-type:: annotation
hl-page:: 1
hl-color:: green
id:: 6464e5e9-a147-4747-8c6f-2c907d728754
- Programming means developing computer programs, which comprise instructions for a computer to execute
ls-type:: annotation
hl-page:: 1
hl-color:: yellow
id:: 6464e636-296e-44cd-9030-8f8f418de4a2
- low-code programming minimizes the use of a textual programming language. Instead, it aims to use alternative techniques that are closer to how users naturally think about their task.
ls-type:: annotation
hl-page:: 1
hl-color:: green
id:: 6464e648-e4c8-496f-b66f-bb14f860170a
- A citizen developer is an amateur programmer with little professional programming education. Citizen developers, having chosen a career different from programming, tend to have more domain expertise. Lowcode enables domain experts to become citizen developers. At the same time, low-code platforms should also strive to make pro-developers (professionals with an education or career in software development) more productive.
ls-type:: annotation
hl-page:: 1
hl-color:: green
id:: 6464e67a-e0da-4289-a819-ba114dd6c3ac
- No-code programming is more purist, with zero handwritten code in a textual programming language
ls-type:: annotation
hl-page:: 1
hl-color:: green
id:: 6464e6c2-476a-4106-bed9-c00c456ec273
- Another gap between EUP and low-code is that the latter aims to serve not just end users but also pro-developers [7, 32].
ls-type:: annotation
hl-page:: 1
hl-color:: green
id:: 6464e6f9-07ce-4bcc-b118-5c2f006d8535
- VPLs (visual programming languages), PBD (programming by demonstration), PBE (programming by example), RPA (robotic process automation), PBNL (programming by natural language),
ls-type:: annotation
hl-page:: 1
hl-color:: green
id:: 64749b53-54f4-41d9-9964-3bfafa6894fc
- Programming is to low-code what computing is to serverless
ls-type:: annotation
hl-page:: 2
hl-color:: green
id:: 64749ca9-1f4b-45b1-a4d2-64ee0d72a020
- low-code can break barriers between developers across the spectrum and help them collaborate on common ground.
ls-type:: annotation
hl-page:: 2
hl-color:: green
id:: 64749d41-31ca-4ad9-bcad-25124814ef56
- , while low-code typically targets a DSL, that DSL may not be exposed, or if it is, may only be exposed to pro-developers.
ls-type:: annotation
hl-page:: 2
hl-color:: green
id:: 64749ddc-ace8-4465-8990-8459e873611e
- draw upon seeing
ls-type:: annotation
hl-page:: 3
hl-color:: green
id:: 64749ee3-1687-4934-9d20-9b270b4b035e
- draws upon the ability to use a computer application
ls-type:: annotation
hl-page:: 3
hl-color:: green
id:: 64749ef6-8ac8-492a-9cd3-7cdd74dca04f
- draws upon speakin
ls-type:: annotation
hl-page:: 3
hl-color:: green
id:: 64749f03-ede6-4593-8c72-a7e9161b60a7
- the following blocks recur enough
ls-type:: annotation
hl-page:: 3
hl-color:: green
id:: 64749f39-a19a-4413-a34c-090643359fad
- code canvas: renders code, e.g., visually as a flow graph• palette: offers components for drag-and-drop selection• text box: holds natural-language text used for code search, description, or generation• player: has buttons for capture, replay, pause, or step• stage: shows the effect of code execution• configuration pane: lets the user customize components, e.g., via graphical controls such as check-boxes or sliders, or textually by typing small formulas
ls-type:: annotation
hl-page:: 3
hl-color:: green
id:: 64749f79-4b86-4aaf-813a-8e7bc61c0ef3
- users write programs by directly manipulating their visual representation.
ls-type:: annotation
hl-page:: 3
hl-color:: green
id:: 6474a19c-2150-4576-954b-f32de65c6359
- boxes-and-arrows
ls-type:: annotation
hl-page:: 3
hl-color:: green
id:: 6474a1e0-7373-4e47-a10a-62fdc1dbd6df
- dragging components from the palette to the canvas and possibly configuring them in a separate configuration pan
ls-type:: annotation
hl-page:: 4
hl-color:: green
id:: 6474a207-fe6f-493d-819c-2192178d00d2
- Scratch
ls-type:: annotation
hl-page:: 4
hl-color:: green
id:: 6474b79f-2da0-4993-8b66-d631de779458
- The visual notation can take up a lot of screen real estate; the mitigation for this is to elide detail, e.g., by requiring a configuration pane or via modular language constructs [3 , 27]. Even the palette can get too full, hindering discoverability, which can be mitigated by search facilities. A drawback of visual languages compared to textual languages is that they tend to be co-dependent on their visual programming environment, hindering the use of basic tools such as diffing or search, or of third-party tools such as linters or code generators
ls-type:: annotation
hl-page:: 4
hl-color:: green
id:: 6474b841-a7a5-45f3-bea7-8e8100036715
- Programming by demonstration
ls-type:: annotation
hl-page:: 4
hl-color:: green
id:: 6474b8fb-4530-40f1-84c0-92e79c2cb9d5
- ser demonstrates how to perform a task by hand via the mouse and keyboard, and the PBD system records a program that can perform the same task automaticall
ls-type:: annotation
hl-page:: 4
hl-color:: green
id:: 6474b97f-ecb5-4ce7-8dc0-11812a5ffddc
- mapping pixel coordinates to a user-interface widge
ls-type:: annotation
hl-page:: 4
hl-color:: green
id:: 6474b9db-32c6-4727-bf5c-c5593b7a25e5
- useful if executing it does not yield exactly the same behavior as the initial demonstration, but rather, generalizes to different data.
ls-type:: annotation
hl-page:: 4
hl-color:: green
id:: 6474b9eb-4b4d-4427-8f51-4c2e7e062987
- PBD can result in programs that are hard to understand because they include spurious steps or are too fine-grained, which is of course a problem in low-code programming
ls-type:: annotation
hl-page:: 5
hl-color:: green
id:: 6474badb-22d3-4792-a807-df517f86a03d
- https://doi.org/10.1145/1926385.1926423
ls-type:: annotation
hl-page:: 9
hl-color:: green
id:: 6474bb69-d875-4e4a-907c-7156a99bf7c9
- Programming by Natural Language
ls-type:: annotation
hl-page:: 5
hl-color:: green
id:: 6474bbdd-979d-4a47-a0da-954dbd3e41d8
- user enters natural language text via keyboard or voice, and the system synthesizes a program
ls-type:: annotation
hl-page:: 5
hl-color:: green
id:: 6474bc69-b7b7-4b4f-aaab-42f2bf6b9a14
- The PBNL system can execute the program immediately or save it for later, and the user may choose to execute the program multiple times, e.g., after changes to the programs input data. The system can also optionally show the effect of the programs execution on a stage. For example, if the program is a query in a spreadsheet, the spreadsheet is the stage, and the result can be shown as a new table.
ls-type:: annotation
hl-page:: 5
hl-color:: green
id:: 6474bc9c-e48a-415a-ae35-84b1a6a6ff63
- BNL makes creating programs trivial, those programs are often wrong
ls-type:: annotation
hl-page:: 6
hl-color:: green
id:: 6474be2e-9dad-4fc9-b636-284d48ad6010
- natural language processing (NLP) technologies are imperfect.
ls-type:: annotation
hl-page:: 6
hl-color:: green
id:: 6474be52-8071-4823-befd-04c55f4d3d76
- they often require an aligned corpus of utterances and programs to train machine-learning models, and obtaining such a corpus is expensive
ls-type:: annotation
hl-page:: 6
hl-color:: green
id:: 6474be76-0e9b-4579-92c3-f59a7fbce760
- little difference in the Read and Execute columns: users read programs on a code canvas (if provided), and watch them executing on the stage (if visible). That hints at an opportunity for reusing building blocks across tools for different techniques.
ls-type:: annotation
hl-page:: 6
hl-color:: green
id:: 6474bf96-99c8-42d1-be92-11ac5a3f0ce4
- A core goal of low-code programming is to reduce the need to learn a programming language. Citizen developers can demonstrate a program or describe it in natural language without having been taught how to do so. Visual programming, on the other hand, is often not quite as selfexplanatory, which is why Figure 1 associates it more with semi-developers. On the other hand, depending on the users attitude, the need-to-learn can also be a positive aspect, since it grows computational thinking skills.
ls-type:: annotation
hl-page:: 7
hl-color:: green
id:: 6474c050-3883-44a7-8e40-db229874141d
- We expect PBNL to grow along with relevant advances in AI.
ls-type:: annotation
hl-page:: 7
hl-color:: green
id:: 6474c0c5-0bd8-4fb7-8f4b-38e422d285f5
- All three low-code techniques from Section 3 are intrinsically related to domainspecific languages (DSLs
ls-type:: annotation
hl-page:: 7
hl-color:: green
id:: 6474c1a9-0e10-4e4f-8691-405f42335dc9
- most visual programming languages are DSLs
ls-type:: annotation
hl-page:: 7
hl-color:: green
id:: 6474c1c0-1a27-4eac-a8f7-cc9828a4c171
- by demonstration and programming by natural language usually target DSLs
ls-type:: annotation
hl-page:: 7
hl-color:: green
id:: 6474c1da-3052-475b-bf94-9af02a7e4315
- those DSLs are not always exposed to the user
ls-type:: annotation
hl-page:: 7
hl-color:: green
id:: 6474c20d-32ed-4c99-a946-49ef3bbfd01c
- Low-code programming tools provide one or more views of the program. Some of these views, or projections, are read-only, while others are read-write views
ls-type:: annotation
hl-page:: 8
hl-color:: green
id:: 6474c345-66e3-4c30-b881-311f74787a6f
- When multiple views are present, the system keeps them in synch with a single joint model, and through that, with each other. Edits in one view are projected live to all other views. The model is a program in a domain-specific language (DSL). As discussed previously, the DSL may or may not be exposed to the user, and may or may not be embedded in a host programming language. Optionally, the system may even expose the textual DSL as another view, for instance, in a structure editor [37]. Besides the model and the view, the third part of the MVC pattern is the controller, which, for low-code, can contain a player and/or a configuration pane
ls-type:: annotation
hl-page:: 8
hl-color:: green
id:: 6474c351-3410-494b-98bc-f51aaf6f253d
- domain-specific languages and the model-view-controller pattern constitute a common backbone and unifying principle across low-code techniques
ls-type:: annotation
hl-page:: 8
hl-color:: green
id:: 64750a95-c15c-43e8-b72b-2e70f477a33b