It's Important to Say "We Don't Know"

Future of Programming

Bret Victor gave this amazing talk in 2013 called The Future of Programming. He pretended to be giving a talk in 1973 about where programming will be in 30 years based on existing technologies and known constraints of the time. The presentation is admittedly at times slightly halting, as it seems a bit awkward to assert things in the past about what the future will be given what we now know to be true. But, it’s very thought-provoking to put yourself in the shoes of what was known then and think about how our interaction with computers could have developed.

Thinking you know how something works limits your ability to imagine how else it might work

It’s fascinating to look back on a forgotten history, and to realize that in the 1960’s and 1970’s they were building things that we think of as new ideas now. Moreover, his point is that we need to be ok saying “we don’t know” what programming is or otherwise we’re stuck within the constraints of what we think programming is. It’s not to advocate for ignorance, but for “informed skepticism”. Unfortunately, we currently tend to reward and look to those who are certain and confident. We look to those who say “this is the next big thing.” How can we instead create space for and value the “I don’t knows” and the “What if we try… ”. This is not just on a personal level, but on an institutional level as well.

The new stuff isn’t so new

Usually when we look back at history, we use hindsight to we trace what brought us from then to now and to see which moments were seminal. The branches that we didn’t follow aren’t part of the story. This talk uses hindsight to suggest that other possibilities were arguably more likely based on the technologies that actually existed at the time. Things that seem like new ideas today in 2013 had existing precursors already in the late 60’s and early 70’s. For example, in 1964 there was already technology in which you used a stylus to write on a tablet. There were already ideas about and prototypes of direct manipulation of data on a sketch pad, programming using goals and constraints which the computer solves how to do what you want, parallel processing, and having spatial representation rather than textual representation. Not only were other alternatives known, but some limitations of the systems that we ended up building and the constraints that we’re dealing with now are also known.

In other words, there could have been a different path. We could have had different heroes. Not only did we not go those directions, most of us grew up not even knowing that these were old ideas and that other branches might have existed.

Old enough to do things, young enough not to know how it’s ‘supposed’ to be done

But, his point isn’t to lament the paths not taken. Rather, he wants to remind us that there are different paths. If we think we know what programming is, then it limits us to only creating within that definition of programming. He says that the late 60’s and early 70’s were a fertile time because it was “late enough that technology got to the point where you could do things with computers, but early enough that nobody knew what programming was or what programming was supposed to be. They knew they didn’t know, so they just tried everything.”

It’s good to not know what you’re doing

This talk is a call for us to be fertile again. In other words, to be ok with saying “we don’t know” because “most dangerous thought that you can have as a creative person is to think that you know what you’re doing. Once you think that you know what you’re doing, you stop looking around for other ways of doing things and you stop being able to see other ways of doing things.”

Understand constraints and assumptions

To me it also seems important to understand what constraints might have made something infeasible in it’s own time, but feasible now. What kept some of these technologies from growing? Are those same constraints in existence now? Can we recombine ideas, both old and new, in new ways to do something differently? Better?

Doing this requires a balance of respect for what’s been done in the past along with the creativity to create new things too. Sometimes it’s better to build on the past than to write your own. But, sometimes being able to write your own is important for exploring too.

It’s good to learn from what other’s have done

It reminds me of when I studied photography and was confused by why we were being asked to look at hundreds, or thousands, of past works. Why couldn’t I just go do something new? And, wouldn’t I just be copying if I was influenced by these other works? Over the course of the semester I came to realize that if I didn’t understand the artistic context, I would likely just go make photographs that were similar to the first photographs that most people made as they started out. But, by understanding ideas that others had played with, I could better understand how to play and explore the medium and eventually create much more interesting and more unique work.

Read the notes

The video is well documented, and many of the footnotes and background work is quite interesting too.

Written on October 11, 2014