Skip to content

Latest commit

 

History

History
44 lines (41 loc) · 2.78 KB

File metadata and controls

44 lines (41 loc) · 2.78 KB

Graphical / Visual representation layer:

  • spatial & temporal representation, split program into procedures and sequece/control flow.
    • Visual representation: great for scatching spatial relationships.
    • text is good for temporal/time relations.
  • The programmer pictures (mental image) the program, imaginning it as a graph, parts with connections. The idea that you can put up a chart, and the chart is the program.
  • During reading a program, the programmer jumps between blocks, not line by line as in text based programming. Creating a mental map of the code (maps imperfect by nature, as maps are a reduction of what they represent).
  • Allows to view the program all at once.
  • Procedural abstraction: making a shorthand for a piece of code. And naming of parts of code.
  • Collapsable text blocks, abstracting currently unnecessary sections.
  • Realtime changes: e.g. updates to the middleware sequencemin realtime.
  • The engine takes the state of the editor (nodes and connections, etc.) and recomposes the implementaiton graph, chains the pure functions with observable glue. On change, reconciles the state of the editor with the state of implementation.

Some Pros & Cons:

  • highlight the executed coe in a visual diagraph.
  • View the graph itself as a program.
  • Textural programming languages obfuscate what is essentially a simple process.
  • Abstraction and decoupling play a small and peripheral part in programming.
  • The tools that have been developed to support programming are unimportant.

Classification of Visual Programming Languages as a generalized purpose tool:

  • Block-based: e.g. Scratch, Blockly.
  • Flow-based: represent state flows, data flows, logic flows.
    • Prograph (language designed in the 80s)
  • all the rest etc ..
  • Control flow of abstractions.

Actual examples of specialized tools, not a generalized purpose languages: