VPL Issues

  • thoughts from Ivan Reese's post:
    • Max/MSP / PureData seems to be a local maximum
    • most VPLs weaken naming - instead of giving names to things, you make connections between unnamed things
    • VPLs require constant jumping between mouse and keyboard (something I tried solving with DAS-UI)

    I don't think that the complexity issue (...) is essential. I think it's self-imposed by current visual language designers. Perhaps that's because the handful of visual languages that got traction (and thus the benefit of countless hours of design & development effort) are created for people who aren't computer scientists. These languages only need to be sufficient for solving a domain problem, not for advancing the art of the visual PL.

    • some ideas/prompts from Ivan:
      • use more of "visual" - borrow ideas from what designers are used to
      • layers - like in Photoshop
      • color-with-meaning - tags in Finder
      • shapes-with-meaning - using shapes to represent types, etc.
      • animation-with-meaning - step-debugger that plays things "slowly", Hest has even playback in reverse
      • possibly allowing programmer to specify what meaning they want to attach to which visual representation

    The fact that current visual languages are built of monochromatic text, a few box shapes, and a few colors of line, is a tremendous failure of imagination.

  • other prompts:

The problem with visual programming is that you can't have more than 50 visual primitives on the screen at the same time.

Deutsch limit

Secondary notation is poorly developed in the box-and-wire notations we examined, which we believe makes them harder to understand (although as yet, large-scale studies of comprehension have still to be reported). To achieve their aim of making better use of the visual medium, VPLs need facilities for colouring, commenting, grouping, modularizing, etc. (We recommend an explicit 'description level'.) Techniques to reduce the cluttered-wire problem would greatly increase the scope for using spatial layout as a form of communication.

— Usability Analysis of Visual Programming Environments - A "Cognitive Dimensions" Framework

  • I like how code is expressed as "layers", borrowing from graphical applications (some other interesting prompts in this direction in VPL Issues:
    export let inner = 0.5;
    export let outer = 0.75;
    export let vertices = 10;
    // ...
      <Slider label="Sides" bind:value={vertices} min={5} max={20} step={1} />
      <Slider label="Inner Radius" bind:value={inner} min={0} max={2} step={0.01} />
      <Slider label="Outer Radius" bind:value={outer} min={0} max={2} step={0.01} />
Szymon Kaliski © 2022