Bret Victor's Thesis

This is my understanding of (some of) the common threads through Bret Victor's talks and writings:

  • "notation" is a way to understand and work with complex ideas - The Incredible Power of The Right Interface
  • Bret's idea is that we use the same representations of thought both for communicating with others, and for thinking with internally (tensions with Workshop vs Library), so by improving ways to communicate with others we'll improve our thinking
    • humans can interact with things on multiple levels:
      • symbolic (mathematic equations)
      • visual (data visualizations, Solving Things Visually)
      • tangible (working with physical things, direct manipulation)
      • spatial (moving in a space)
        • relevant to this is what Alan Kay said in "Doing With Images Makes Symbols" - Einstein used to "feel" math in his hands, and would move around the room when thinking (spatially) - most of the mathematicians and physicist do this - use tangible/spatial "modes" for thinking, and symbolic representation for communicating
    • we can (and should) use Dynamic Medium to improve on each of these!
  • Programming is a Specific Case of a Bigger Problem
    • right now "programming" is "blindly manipulating symbols"

      the author sees and manipulates indirect symbolic representations, and must imagine how they give rise to dynamic behavior

      • this could be improved by (Future Of Coding):
        • seeing the dynamic behaviour that is being created (Simulator)
        • exploring multiple representations of that behaviour (Ladder of Abstraction)
        • directly manipulating representations and data
    • but, programming is not that important in-itself:
      • it's about "using representations to think powerfully about systems" - the same way that Logo (Mindstorms) wasn't about teaching children programming, but teaching children to think mathematical thoughts through the interface of programming
      • we switched from analog to digital circuits, and then to programmable circuits, but they are all about the same thing:

        a software system is an instance of a more general class of systems, so it's possible to write about "programming" using ideas that aren't actually specific to programming


Right now, today, we can't see the thing, at all, that's going to be the most important 100 years from now.

It certainly won't be software. Today, software is the dominant field of systems engineering. But before that, there were integrated circuits, and before that, discrete transistor circuits, and before that, vacuum tubes, and relays, and mechanical gears of all sorts, and on and on, back to the hand-axes. Vannevar Bush's differential analyzer was a mechanical masterpiece which no longer matters.

(...) Any concept, technique, or tool that is specific to software engineering is guaranteed to have a short shelf life, at least on any time scale that I personally care about.

(Which is totally fine if you're into that, but this is my ill-advised personal note, not yours, and I personally care about mattering 100 years from now.)

An Ill-Advised Personal Note about "Media for Thinking the Unthinkable" - Bret Victor

  • "software" doesn't matter (it's "incidental" in a sense), "computing" does (or in Bret Victor's words: "working with dynamic systems")
Szymon Kaliski © 2022