Thursday, February 16, 2012

Inventing on Principle

Thanks to @bryanrieger and @jonarnes, I was guided to the Bret Victors great talk at CUSEC 2012 : "Inventing on Principle". The most inspiring talk Ive seen since my TEDx day in November. He really openens new perspectives on programming and creative processes using computers. It is really worth watching for anyone that consider themselves as creative, or aspire to be so. (Those of you that manage to stay through the programming examples, will be rewarded)

His guiding principle is:

"Creators need an immediate connection to what they create"

This connects to what I already know - immediate feedback is a good thing. It explains why dynamic programming languages like JavaScript, PHP,
JSP, Grooy, etc. are so popular, because they speed up this
feedback cycle by removing the compile step. Bret Victor, however takes this principle so much further. In his demo he doesn't even have to press refresh in a browser to see the results of the changes he makes. Simulation is much stronger than feedback, and I guess connection is even a deeper concept.

Only half way through this video, I immediately made the link back to Seymor Papert that I wrote about in my blog post in December. What struck me was how this principle relates so directly to the goals for the Logo programming language; using a Turtle as an object to give kids this immediate connection to what they create.

Coincidentally a turtle is also what Bret Victor uses in one of his gaming examples.

When I watched the second half he confirmed the connection by referring to Alan Key as one of his inspirators. And not surprisingly, Alan Key worked with Seymor Papert at MIT.

This is to me the proof of how great ideas will travel through time and space, and grow. I was afraid it was lost somewhere, but now I see they are still alive and people like Alan Key and Bret Victor have nourished them with care and passion.

One day everyone will be able to program a computer - we just have to finish rethinking what programming is first.