Feedback Loops

I should be writing code at the moment. But something a lot of people don't understand about writing code is there are definitely shades of breathing to it. You don't just inhale or just exhale. There's much stepping in and back. (source)

Imagine if you were painting with a delay. You would apply strokes to the canvas but they would only show after you pressed a button. Why would that get tedious? Because the feedback loop between you painting and seeing what you painted is too much. Latency gets in the way.

I wonder about this with programming. There is no feedback loop when you write code in a text editor. Nothing happens besides syntactical notifications from your IDE. Only when you feel ready to test it out do you run your code. This is where you can see your handiwork in action. Or not. Because there are many errors. So let's fix them. But not in real time silly. Go back to the text editor. Adjust the code. Now run the code again. Repeat.

This is a far cry from many other art-forms besides painting *. * Besides maybe cooking. You can spend a long time with a recipe only to find out it tastes awful after cooking it. But even with cooking we have the ability to taste and adjust our recipe as we go along.I came to programming from music of all places – dropping out a PhD program for classical guitar performance and going into IT. With a guitar the feedback loop was fairly closed. I would prepare my left hand and play a chord. If something was off I could adjust and play the chord again. Little to no latency.

But of course there are a lot of other things going on in that moment. I am reading sheet music, sensing how my fingers interact with the strings, hearing the resulting chord, feeling the reverberations through my body. There are so many latent capabilities that are being acted upon in that instance. Aural, visual, kinesthetic, spatial.

I wonder if the experience of coding pales in comparison because it does not act upon these human capabilities. Perhaps it is why people have trouble getting into programming in the first place, why the plea for everyone to learn to code falls short. It makes no difference if we close the feedback loop with better live programming. There is still something about programming that causes latency *. * Read Bret Victor's “Learnable Programming” if you haven't already. It explores these topics in a much better way than I. (source)