Mahor
This commit is contained in:
@@ -1,218 +0,0 @@
|
||||
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 program’s input data. The system can also optionally show the effect of the program’s 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 user’s 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
|
||||
Reference in New Issue
Block a user