The Illusion of Progress

Most people are probably under the impression that computing technology has taken vast strides over the last 10 years. But this is, for the most part, an illusion.

It's impossible to deny that there have been vast improvements in computer hardware. Processors are now much faster, memories (both primary and secondary storage) are bigger. My first PC, bought in 1982, ran at 4MHz, had 49k of RAM, and secondary storage was to cassette tapes. My next, in 1986, ran at 6MHz, had 640k of RAM and had a 10Mb hard disk. My current PC runs at 100MHz, and when bought in 1996, had 8Mb of RAM and an 850Mb hard disk. I upgraded it in 1999 to 40Mb and 6Gb. Personal computers today are already 25 times more powerful.

Similar improvements have not happened in software, and in some areas progress has been retrograde. However, most people, including most of those working in the computing industry, have seen nothing but progress. Why?

The reason is because the most advanced systems were never available to them.

If you've been using punched cards, the ability to type into a line editor (such as ed) is an improvement. A command-based screen editor (such as Teco, vi or Cande) is a further improvement. Yet Emacs, the most sophisticated text editor available today already existed in the late 1970s on ITS, with essentially the same user interface, and was made available soon afterwards on Multics and Lisp machines.

If you've been writing COBOL, you see Java as a big step forward. You can pass arguments to procedures and return values. You can structure your code into hierarchically structured classes and methods. You have graphics. But all this was available to Smalltalk programmers back in the late 1970s. To them, Java is a step backwards.

Java and C++ make you think the new ideas are like the old ones. Java is the most distressing thing to hit computing science since MS-DOS -- Alan Kay

Now we can look at progress in user interfaces, by examining what Microsoft had to offer at various times. First, they had Basic, then they acquired MS-DOS. Both had command line interfaces. These were followed by various flavors of pre '95 Windows, ending in Windows 3.11. A GUI but not a very pleasant user experience. Finally, with Windows 95, they had a decent user interface which has scarcely altered, let alone improved, since then.

Windows 95's front end is based on systems that were available to Smalltalk and Interlisp programmers on Xerox workstations in the 1970s. From their perspective, the world has almost caught up.

The bad news is that there is no Xerox waiting on the sidelines with the next 20 years of technology to downstream to the masses. The interface to Windows NT is about as good as it's going to get.


This page was linked to from

© Copyright Donald Fisk 2003