Bret Victor on Live Coding

Bret Victor has another insightful essay up about “learnable coding”, which he says is an “immune response” to people saying his previous (also excellent) video was “about live coding”. He goes as far to say that live coding is “almost worthless” on its own.

That would be a fair point if live coding were only about live updates and nothing else. However in practice live coding isn’t a single technique, it’s a rich culture of ideas about liveness and code.

For example here’s live coding in Field:

In SchemeBricks:

In Overtone:

Just in those three you’ll find prior art for code timeline scrubbing, tangible values, auto-completion, the manipulation of history, and many of the other features that Bret argues for, in use in the wild. That’s not to say that Bret Victor isn’t contributing some really interesting and novel ideas, and that people shouldn’t run to read “mindstorms”, but in brushing off live coding out of hand, he’s missing out on some contemporary context too.

0 0 vote
Article Rating
14 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
davide
Admin
8 years ago

You are being a gentleman Alex and you found the most elegant way to highlight the main problem I have with Bret’s video. Since I have 10 minutes I’ll inflict the readership with some harping on the topic. I’m sticking to the video, not the article as I haven’t read it in detail.

He doesn’t reference any previous work. In fact, he does even worse than that, he only “references up” implicitly implying some sort of direct “relation of innovation” with his prototypes and the invention of the mouse and the invention of modeless interaction. There is no single mention of recent work, and, how to say, I do think there have been a thing or two that influenced his work and I think would deserve some sort of mention. I understand that the “conference talk” form doesn’t require references as, say, a published paper does, but I can’t just avoid thinking that Mr. Victor just indulged in the practice that in the art world is commonly called “name dropping”, i.e “referencing up” and carefully avoiding to reference “sideways” or even just a little next to the invention of the mouse. You mention time scrubbing. Let me just add to that, as an example, quite a big deal of research actually went into “un-doable” states and reversible machines (real and virtual), that resulted in well known commercial packages that let developers replay and rewind JVMs. This is commercial software that is routinely used for debugging purposes and is the result of a long line of research. Not a shade of mention, the concept is just shown as a total novelty.

That in my opinion is the cardinal sin that clouds my judgement about his commentary, but he pushes beyond that into, I dare say, “rambling” is the best description. In the same talk he manages to depict current software makers as killers of creativity, and also proposes a dichotomy between man of craft and man of genius. He weaves these statements just like that, gaining momentum next to his demo, topping it all with an epilogue that draws from the tones of martyrdom. The margin is too narrow and there is no space, I invite the reader to sieve these statements through the “wait a second” filter and draw her own conclusions.

The 10 minutes of demos are amazing. For the most part. They are amazingly well crafted and the package of one good demo next to another good demo multiplies the effect. There is genius at work there, I’m not questioning that.

But the name dropping? The summary disparaging of current commercial software? The supposed difference between genius and craftmanship? The final sequence where only a crucifixion is missing?

I take the demos for inspiration thank you very much, if I could see actual working code even better, and I stay tuned with a bucket of popcorn for what promises to be a spectacular climax of hyperboles.

davide
Admin
8 years ago

Yes but I don’t understand why demoting craftsmanship to some sort of menial second-grade class of work should be inspiring to people. I think it’s for the greatest part a self-serving argument.

I genuinely think some commercial software is doing its bit to enable creativity. I think that photoshop is a majestic piece of engineering for example. Context-aware tools are beyond magical just to name one thing (it came from Academia but someone had to make it robust!). That the flash API has been a good model for a lot of the retained mode graphics world, including open source. That console manufacturers and game makers have enabled cheap 3D to enter our houses. That Intel is creating magical engineering every 1.5 years. That a lot of standards driven and funded in big part by Fortune-500 companies have produced new ways to do interactive web without plugins.

All of the above takes an insane amount of craftsmanship and money and I don’t understand where Bret’s disparaging line of though is leading. That we need less craftsmanship and more genius? I just don’t understand what that recipe means. What is he trying to say, that we need more innovation? Structured lighting and GTA V and 11-point touch screens that last all day – for the masses – what’s his problem with craftsmanship?

Andrew Sorensen
8 years ago

Actually I’m also pretty unimpressed by Bret.

Hard to put my finger on why precisely but I think the previous poster got close with his *rambling* comment. Actually I couldn’t bring myself to finish either the video or the paper. I’m really uncomfortable with the large number of “cant, must, have to” phrases. Actually Bret I don’t HAVE to do anything. Hmmm, on reflection it reads a lot like something I would write before going through and trying to edit out all the stupid claims I had made ;)

If he had toned it down a little I might have been able to finish one of these. I don’t think I would have learned anything but I would at least have finished. Maybe this is because I’ve already read mindstorms** … hmmm perhaps it’s a generational thing and I’m struggling to come to terms with being on the older side of that divide ;)

** as have about half the planet!!

Eric K.
8 years ago

I believe the quote is “live coding, on its own, is almost worthless”. Field, SchemeBricks and Overtone do not use live coding “on it’s own”, do they? The example in Bret’s article does. To be sure, Kahn Academy doesn’t either. This may be a straw-man argument, however what he says remains true: Live coding on it’s own is not enough. Khan Academy seems to try to make up for this with video instructions overlaying the environment and documentation around the edges. What Bret proposes is to embed superior discovery and understanding opportunities into our programming environments for the benefit of the learners and programmers.

Joseph Zizys
8 years ago

can I just ask, when THE HELL did toplap suddenly turn into an awesome and actively maintained blog!?! I have been a fan of Dave Griffiths for such a long time and used to occasionally visit the toplap page (it was a but ugly wiki then) and pine for a place where all (you Alex, and you too Andrew) my favorite live coders might hang out and exchange thoughts and stuff (a bit like Lambda the Ultimate is for language nerds) and now HEAR IT IS!!.

On the topic, I like a lot of Brett’s ideas, and I know at least one kickstarter project, light table? that is working to implement his demos as a functioning IDE already. Yes he has a holier than thou attitude, but so what? His ideas are out there and we can all steal like crazy from any of them that we think are worth pursuing.

And just to commit my own sin of rambling, I think citation would be nice, but how much nicer would it be if there was more source code out there? I heard that there was an experimental OS for the Apple Newton written in Lisp by the name of Bauhaus, hearing about it and not being able to see the source is gut wrenching.

Anyway,

Paul K
8 years ago

Alex, thank you for the pointers; I haven’t seen these projects before, even though I’ve been working on adding live coding features to my own Lua IDE (ZeroBrane Studio: http://studio.zerobrane.com/). I recorded several short screencasts demonstrating live coding in Lua (using turtle graphics: http://notebook.kulchenko.com/zerobrane/live-coding-in-lua-bret-victor-style) and in Love2d engine (http://notebook.kulchenko.com/zerobrane/live-coding-with-love).

I do agree that live coding is richer that may seem from Bret’s comment, but I think the reason for this statement is that he was upset with the oversimplification of his Inventing on Principle presentation as an implementation of cool live coding technique and not much else.

Holographic Elf
Holographic Elf
8 years ago

Here’s a video from June 2012 where Alan Kay shows a bit of collaboration with Victor:
http://amturing.acm.org/acm_tcc_webcasts.cfm
You have to select “Extracting Energy from the Turing Tarpit” from the right. The Victor bit is at ~21 min.

Yoshiki
Yoshiki
8 years ago

Ah, good reference. In fact, what Alan Kay did in the talk with the bridge demo can be seen as this defnition of “live coding”. On stage with big audience, puts up (highly declarative) code for the bridge, edit them real time to get crowd pleasing effects…

dave
8 years ago

For what it’s worth (and a bit late to the party) I just read this as meaning live coding as an interface mechanic on it’s own is worthless, which it is. I think Live Coding as a cultural movement (for want of a better description) is something else, and out of the context of this article. A lot of it made me think about a lot of the work which has been going on with Racket, especially this stuff: http://docs.racket-lang.org/quick/