On UI of programming tools

Mar 12, 2014

Disclaimer: I no longer agree with the content of this post. It's hidden from the main page of my site, but so as not to break links, the content is here, unmodified.

Recently, I've been thinking about UI. Ina talk at Caltech, Carver Mead said:

Right now, today, we can't see the thing, at all, that's going to be the most important 100 years from now.

Somehow I got this mixed up with Bret Victors A Brief Rant on the Future of Interaction Design, and that got me thinking: How much will my tools as a programmer change in the next 100 years?  First, let's look at my toolkit:

  • A good linux distro
  • Vim
  • Python
  • Zsh
  • Firefox
  • Tmux

And let's look at how long those tools have been around for:

  • Linux: 23 years
  • Vim: 22 years
  • Python: 23 years
  • Zsh: 24 years
  • Firefox: 11 years
  • Tmux: 5 years

Most of the tools here are rewrites, or extremely similar to other, older programs:

  • UNIX: 45 years
  • Vi: 38 years
  • Netscape: 20 years
  • GNU Screen: 27 years

How much have these tools changed in their lives?  Chances are that I could pick up UNIX, slap Vi and Screen on it, and be able to use it without many WTF moments. Now, let's look at a "normal" (Non-geek, non-programmer) person's computer:

  • Windows
  • MS Office
  • Chrome/Firefox/IE

People have lots of other things that they use as well, but that differs a lot between users.  Let's take a look at windows.  It's been around for a while.  29 years.  But how many people could pick up this, and use it? https://upload.wikimedia.org/wikipedia/en/4/4e/Windows1.0.png Anyone? While we're at it, let's just step through a couple major releases of windows:

When was the last time that windows made a major change to it's UI?

Oh, right. 2 years ago.

When was the last time that linux made core change to it's UI?  I can't find any source for this, but seeing as Bash was around 10 years before linux, I think that linux has been using bash for pretty much forever.

It might seem like I'm saying that linux is better than windows.  It is, but not for any reason I talk about here.  UI changes are good.  They allow us to experiment with different ways of communicating with the machines we use every day.  However, what makes a good UI for a programmer and what makes a good UI for a normal user are two very different things.

Programming UIs need to be powerful.  It doesn't matter if it'll take you months to learn, so long as it make you more powerful.  Take Vim or Emacs as an example.  They are not even remotely easy to use,yet many programmers use them every day.

Now look at the average user of a computer.  Do you think that they value how powerful a program is more than how easy it is to learn?  I would say not.  Most computer users want to be able to pick up a program and use it, and not care about learning it.  This is why you see the interfaces that you do in consumer software.  Look at iOS:

So intuitive, even a baby can use it!  But is it powerful?  No.  You cannot have a powerful program without a steep learning curve.

Now back to my point:

What was on the cutting edge of intuitive 10 years ago is very different from what is intuitive now.  Let's go back to my example of text editors.  What was the most powerful editor 10 years ago?  Vim or Emacs, depending on who you ask.  Now?  Vim or Emacs, depending on who you ask.

For as long as we will have computers, the amount of time between paradigm shifts in interfaces for regular users will be far less than the amount of time between paradigm shifts in interfaces for programmers.  We already have powerful figured out.  We just need to get intuitive down, and technology will be good for regular users ans well as us hackers.

Note: All of the data on release times of software and all of the images of windows are from Wikipedia.