Computer programming hall of fame

This is my list of the most innovative computer programs of all time.

  1. Forth by Charles H. Moore
  2. Unix kernel by Ken Thomson
  3. TCP/IP by Robert E. Kahn and Vinton Cerf
  4. Simula 67 by Ole-Johan Dahl and Kristen Nygaard
  5. Lisp by John McCarthy
  6. C by Dennis Ritchie
  7. Unix shell and pipes by Ken Thomson and Douglas McIlroy
  8. grep (and regex) by Ken Thompson
  9. vi by Bill Joy
  10. Pong by Allan Alcorn

Note that the most recent programs in the list are from late 1970s/early 1980s. Does this mean that the programming community hasn't been able to introduce anything innovative in over two decades?

Yes. Certainly not innovations of this caliber. And certainly not as released products.

Why? I think the industry has grown complacent and people are avoiding risks.

As the software industry has matured it is safer to just recycle the same old ideas. Also, ever faster hardware can give the impression that there is progress in software too, when in reality the computer is just executing more of the same. And as long as the computer buying public doesn't care, those who fund the work are not too keen on investing in new experiments either.

The user interface stemming innovation

Take user interfaces for example. It says something about the state of the software industry that the perceived innovation leader in operating systems (Apple) hasn't changed the concept of their user interface at all since 1984.

The current computer user generation has grown up with the WIMP interface (Windows-Icons-Mouse-Pointers), often without even realising that it is just one possibility of many. It's not that there's something particularly wrong with it. The questions is: why don't computers come with other types of user interfaces in addition to WIMP, let's say for the sake of experimentation, or even just for fun? After all, there's plenty of room on the hard disk.

The reason is that current application software is designed to only work with WIMP. There is no separation of function and form. A new, significantly different user interface would require rewriting all applications. If the separation existed, users would certainly have a number of different user interfaces to choose from, and overall progress would be much more rapid.

Ideas such as BumpTop (Video) by Anand Agarawala, and the many user interface ideas seen on computer games over the years hint at what's possible. Even Microsoft has (obtained by acquirement) many cool ideas—Photosynth (Video) for example—that could be used to come up with entirely new ways of using the computer.

In fact, I believe ultimately there will be a mergence of computer games, virtual worlds, and the computer user interface. Our computers and networks are already fast enough. The only thing keeping it from happening is the present overall lack of innovation in the software industry.

WIMP (also from late 1970s/early 1980s), while a cool idea in itself, is partially reponsible for this. The industry has become so fixated in it that it now can't find its way out.