eschew obfuscation (and espouse elucidation)

Talk Notes: Inventing on Principle


Title: Inventing on Principle
Conference: CUSEC 2012
Speaker: Bret Victor
Date: 2012-01-20



A way of living your life. Find a principle that you believe is necessary and important and use it to guide your work.

Three parts to the talk.

  1. My principle
  2. Larry’s principle
  3. Your principle

My principle

Ideas are important to him, how they are formed and grow. What sorts of tools help ideas succeed.

Principle: Creators need an immediate connection to what they’re creating.

Seeing the effect of your change immediately.

Cases where this principle is violated:


When coding, the result is often quite a ways from the code. No connection to the output.

He developed an editor where the code change is immediately seen. A change on the right is immediately reflected on the left.

Starts allowing other interactions with the code.

So much of art is discovery, and you can’t discover when you aren’t looking at the output. One effect of direct manipulation is a shimmering effect, which wouldn’t have been seen if the output wasn’t right there.

Auto-complete also shows different options when they are hovered over.

Problem is that we don’t know immediately what line of code maps to what visual element. He wrote a mapping magnifying glass. Also works from the picture to the code, highlighting the section of code.

Ideas start small, fragile. Need nurturing. Immediate connection helps this.

He then applies this to a video game, which has state. When he pauses the game, a time slider appears which allows motion through time with the same input controls but whatever the current game code is. He then maps time to space so you can see what past and future states are going to be, making direct manipulation possible again.

What about more abstract coding? Non visual, like binary search.

You end up having to play computer in your head. This is what software engineers do.

By showing, interactively, what the variables look like, you can see an algorithm visually.

Other types of creation

Electronic circuit, with meters on each wire showing voltage as well as being able to compare them to each other.

Obeys golden rules of information design:

  1. Show the data
  2. Show comparisons

Circuits were drawn that way because the symbols are easy to express using pen and paper.

We must ask ourselves: How can this new medium allow us more immediate connection to what we are creating?

Any type of creation


Animation is usually specified with keyframes, but those are just guessing. “Flash doesn’t know how to watch my hand”

Demos an incredible iPad application where animation is directly manipulated.

Rotation, panning, character motion. All entered in 2 minutes, like playing a musical instrument.


Millions of ideas are stuck in millions of heads.

Why does he have this principle? Why does he do this?

Not opportunity, but responsibility. Justice, moral right and wrong.

People throughout history have decided to act, to right something that’s perceived as wrong. This is not just for social activism, but it can be applied to other fields, like technology.

Larry’s principle

Larry Tesler - vision for personal computing changing our lives.

Computers were modal, like Vim modes. Larry saw that people had difficulty working with computers and he believed it was because of modes. So his principle was to eliminate modes from computing. He even made T-shirts that said “Don’t mode me in.” He invented a text editor that had no modes, inserting and selecting, moving text around.

He is @nomodes on twitter and his website is http://nomodes.com

What did he do?

  • Did he invent non-modal editing? No, he reacted to a cultural context.
  • Did he solve the problem of mode-less text manipulation? No, he solved a problem that only existed in his own head. No one else thought it was wrong. He recognized an unrecognized wrong.

Other principled pioneers:

  • Douglass Engelbart - interaction, mouse
  • Alan Kay - Xerox PARC, OOP
  • Richard Stallman - GNU project, GCC, GPL - Software must be free.

Keep fighting against the establishment.

Your principle

You too, can live this way. You don’t have to, but it’s available to you.

  • Craftsman - make things
  • Problem Solver - find problem, solve it, move on

Not defining by craft, but by cause. Finding the principle is a process of self discovery.


It took Bret 10 years to find his principle. He saw glimpses, but no clear direction. He built up a corpus of experience to ferret out what actually mattered to him.

A general desire is not a principle. A principle divides the world in to right and wrong fairly objectively.