Szymon Kaliski

  1. Main
  2. Projects
  3. Notes
  4. Music
  5. Bio

Visualizing the Problem Domain is More Useful than Visualizing the Program Shape

We see code on the left and a result on the right, but it's the steps in between which matter most. The computer traces a path through the code, looping around loops and calling into functions, updating variables and incrementally building up the output. We see none of this.


Traditional visual environments visualize the code. They visualize static structure. But that's not what we need to understand. We need to understand what the code is doing.

Visualize data, not code. Dynamic behavior, not static structure.

Learnable Programming - Bret Victor

"Visual Programming" failed (and continues to fail) simply because it is a lie (...)

When I write code, for example a layout algorithm for a set of GUI elements, I visually see the data in my head (the GUI elements), then I run the algorithm and see the elements "move" into position dependent upon their dock/anchor/margin properties (also taking into account previously docked elements positions, parent element resize delta, etc). This is the visual I need to see on screen! I need to see my real data being manipulated by my algorithms and moving from A to B. I expect with this kind of animation I could easily see when things go wrong naturally, seeing as visual processing happens with no conscious effort.

Instead visual programming thinks I want to see the textual properties of my objects in memory in fancy coloured boxes, which is not the case at all.

[Dynamic Authoring] The author creates the material by directly manipulating representations of behavior and data, instead of manipulating a structure. Manipulation takes place in the data domain.

CDG Research Agenda


  1. 2022-04-04Sketching, Modeling and Programming1
  2. 2022-02-01VPL1

595 words last tended to on 2024-05-05newsletter, rss