In the video below the programmer Bret Victor, in 1970s-IBM Engineer mufti, talks about the future of programming; the conceit is that he’s talking as if it were 1972. It’s worth looking at a little of it even if you’re not a programmer, because it illustrates, entertainingly, that most of the core ideas and concepts of the modern digital era were very well understood by the late 1960s. Email started sending in 1971.

To-do Lists

One of the systems Victor talks about is in that speech is Doug Engelbart’s NLS system of 1968, which pioneered a ton of things—collaborative software, hypertext, the mouse—but deep, deep down was a to-do list manager. Since then the world of technology has never hurt for personal productivity tools. Every year or two there seems to be a new hotness: it was Remember the Milk for a while, and OmniFocus, and TaskPaper, and Asana. Asana’s tagline is “Teamwork without email.” And of course there are tons of productivity technologies that don’t involve a computer, including the “Getting Things Done” system, which tore through the Internet like wildfire for a few years—Inbox Zero is its legacy. Its influence can be felt throughout the world of software apps. There are systems of software development, where people sort their ambitions into use cases and take assignments at standup meetings, are another.

To-do list apps have become a sort of meta-technology. For example, when programmers come up with a new programming language or framework for the web—that is, when they build a new way to build things—they will be in need of a way to to demonstrate why their approach is better, and one way they do that is to write a to-do app. There’s even a website, ToDoMVC, where you can get all the graphics and assets you need to get started writing your own clone app; there are more than 60 different versions of the exact same to-do tool on that site, each written with its own framework or with its own approach (and these are just for the web; you can write to-do apps in any language). This way, someone shopping for a framework can figure out which one suits their needs. To-do lists are a sort of meta-idea—so well understood and accepted that it’s become a shorthand, a bit of common knowledge that everyone can share.

The implications of a to-do list are very similar to the implications of software development. A task can be broken into a sequence, each of those items can be executed in turn. Maybe programmers love to do to-do lists because to-do lists are like programs. The phrase “Yet another” is part of countless acronyms—yet another markup language (YAML), yet another JSON library (YASL), yet another hierarchical officious oracle (Yahoo!).

What are the other things that we make again and again? Commenting systems, discussion forums, apps that let you manage all of your communication in one place, collaborative writing tools, blogging platforms—what else? (Use the comment system of this blogging platform to weigh in if it suits you.)

Communication must become total and conscious before we can stop it. —William S. Burroughs, 1962

Other Things

There are other things that we invent over and over. Markup languages, for example, that let us wrap up data and give it meaning as we send it from computer to computer. I will save the reader the agony of a multi-decade recap, and just spew acronyms: S-expressions, XML, JSON, YAML, HTML1-5, and hundreds more—all are politically-charged, vigorously defended, not-fully-compatible attempts to resolve the question of “how to share information between computers.” Then there is Greenspun’s tenth rule, which holds that:

Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

The idea of it being that the qualities (or maybe the qualia) of the programming language Lisp—its simplicity and its approach to processing lists of things in the memory of a computer—are so fundamental that they are emergent. If you write a big program, you’ll reinvent Lisp. If you write a big program, it will read email. If you are a programmer, you will find yourself drawn to to-do lists. And then you will talk about these things, because they are the touchstones of our shared culture of technology, with attendant rituals.

It’s not email bankruptcy; it’s email baptism. Sinbox Zero.

Very little feels as good as organizing all of your latent tasks into a hierarchical lists with checkboxes associated. Doing the work, responding to the emails—these all suck. But organizing it is sweet anticipatory pleasure.

Working is hard, but thinking about working is pretty fun. The result is the software industry.

It’s not that email is broken or productivity tools all suck; it’s just that culture changes. People make email clients or to-do list apps in the same way that theater companies perform Shakespeare plays in modern dress. “Email” is our Hamlet. “To-do apps” are our Tempest.

The developer raises up the great sword of technology and brings it down upon the plinth of culture—and the sword shatters. But never mind; we can go back to the forge to make a bigger, better sword for retina displays. And as we craft it we whisper that eternal prayer for the comfort of list-makers: This time will be different.