It was no easy task researching and writing our cover story this week describing the 12 best pieces of software written. After the agony of whittling that list down to a top dozen, you'd think I'd be finished. But no, here are the top five other programs that didn't make the list--even though they were very, very strong candidates.It's hard to explain exactly why they didn't make the list. In many cases they have the same attributes as those on the list. But they just didn't quite make the cut.
IBM software guru James Rumbaugh is an advocate of Sketchpad as an example of the greatest software ever, and I found the example nearly irresistible.
In January 1963, MIT student Ivan Edward Sutherland submitted a PhD thesis titled, "Sketchpad: A Man Machine Graphical Communication System." The ideas in "Sketchpad" and the resulting Sketchpad software program were so far ahead of their time that they laid the groundwork for a revolution that continues 43 years later. The Sketchpad concepts lead straight to the graphical user interface now manifest in Windows and the Apple Macintosh.
For example, Sketchpad treated the computer screen as a window in which the user could move around freely, unlike the command line interfaces that would be used for the next 20 years by computer makers. It represented a variety of user programs as images or objects on the screen, which could be selected with a lightpen, a device that anticipates the placement and clicking of a mouse.
One of the students who saw the program work went on to develop the Xerox Star workstation at Xerox Parc, leading to the Alto system, which included a mouse and which lead, as we describe in our article, to the Apple Macintosh.
So why not give credit where credit is due and award Sketchpad the honors? Others have seen fit to do exactly that. Sutherland won the Turing Award of the Association for Computing Machinery in 1988. My hesitation isn't based on whether Sketchpad represented technical brilliance or conceptual breakthrough. It did. But I think it was so far ahead of its time that not all its ideas could be effectively implemented in software at the time.
They would be augmented by additional innovations and additional authors. Once such breakthrough was the object-oriented programming concepts captured in Smalltalk; another, the mouse as a point-and-click device, making the graphical user interface accessible to the masses. The rapidly expanding memories and brainy processing chips would soon know how to make use of the graphical user interface, but in Sketchpad's time those resources weren't available.
Part of the standard that I used to determine the greatest software was whether it was able to exploit the breakthroughs and consolidate gains in a single new piece of software that goes on to influence the world. Sketchpad was great, but it wasn't quite that kind of accomplishment.
You may question why I included Java on the list, a copycat C language, and not Smalltalk, a true breakthrough and expression of Alan Kay's programming brilliance. Why not put Smalltalk on the list?
I think Smalltalk was more of a conceptual breakthrough than Java, but Smalltalk itself had several important predecessors from which it borrowed programming concepts. Java is a broadly successful synthesis of predecessor ideas plus its own unique networking-oriented innovations--just right for the Internet. Java will still be broadly used long after Smalltalk has contracted to a smaller and smaller niche.
Geographical Positioning Systems Venture capitalist Ann Winblad recommended geographical positioning systems, which revolutionize the types of user applications that can be made available. They were born with the insightful research of Ivan Getting at Raytheon in response to Air Force needs. Getting left Raytheon in 1960, but the work he left behind became the basis for GPS.
Satellites plus software changes everything. For one thing, our children, unlike their parents, will find it impossible to ever be lost while traveling in an automobile because they will all be equipped with a GPS systems, showing the driver within a few meters where he is anywhere on the face of the earth. Software in a handheld or vehicle mounted GPS receiver takes simultaneous feedback from four satellites to calculate your physical position within a few meters.
GPS systems will show the power of software to serve us in ways an earlier generation could not imagine. Suppose one day a floating buoy detects a giant wave and transmits the information to a GPS system. The system measures the size of the wave and its rate of progress with other bouys and analyzes what population centers are in its path. GPS may one day save 100,000 lives with one execution of the program, mitigating loss of life in disasters such as the Indonesian tsunami of 2004.
But with GPS, it's the positioning of the hardware, the geostationery satellites, which interact with a user for real time responses, that makes the software so useful. I couldn't quite get it on the list. What GPS software does with the data was accomplished in less spectacular ways in many earlier systems.
In some ways, the peak of the graphical user interface isn't represented by the Macintosh or any general-purpose computer system; it's represented by video games, which invent new ways for the user to interact and give the user so much to do on a two-dimensional screen that a joystick is needed to fly through what appears to be a three-dimensional world.
The environments of video games represent a texture-rich simulation that draws their users into an alternative universe. The appeal has proven irresistible to millions. We seem headed toward a world in which learning will occur not in the classroom, but in a visual context that resembles more the individual interactivity of a video game.
With Pong, Mario Brothers, Doom, and a host of others to choose from, how do you determine what was the best example of video game software? My candidate, and a nominee for greatest software ever written until the wee hours of decision making, is the video game Space War. It was written at MIT in 1961 on the slender resources of a DEC PDP/1, and it captured in software the many elements of the modern video game. To have two spaceships circling a planet, rotating upon command and able to shoot at each other, what more could the MIT computer science grad student want? It was a great innovation, great software, and it perhaps should have made it on the list. If I were more of a game aficionado, I would have said it's got the chops. But I'm not.
Zend founders Andi Gutmans and Zeev Suraski, authors of PHP 3.0, made a surprise nominee, one that I also found nearly irresistible, while at breakfast recently at the W Hotel near San Francisco's Moscone Center.
I didn't want current products of commercial vendors on my list, but when Zeev described how he reacted the first time he saw VMware's ESX hypervisor, I got that rocket science feeling again. Intel's instruction set for x86 chips, a complicated, machine-specific set of code-to-hardware interactions, was never meant to be virtualized. Included are some of the most obscure expressions of machine instruction possible. Some of the things that x86 instructions do have no equivalent in a world where a programmer is attempting to substitute for the instruction by having a software virtual machine translate a call for Windows services and tell the processor what to do in the equivalent of real time.
The possible points of failure are so numerous that until VMware ESX Server came along, no one really wanted to tackle the task. It was a brilliant programming accomplishment, one that's changing the world of Intel and AMD servers into a virtual world as you read this. So why not include it on the list? Maybe it was the salsa omelets we all ate.
You be the judge. What do you think should have been included in our list of greatest software ever? Leave comments below and let us know. We'll publish the best comments elsewhere, and the authors will win valuable prizes.
Well, sort of valuable. In some people's opinion.