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 not about "programming", but about the broader problem around it
    • 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


Szymon Kaliski © 2021