What's The Greatest Software Ever Written?
Witness the definitive, irrefutable, immutable ranking of the most brilliant software programs ever hacked.Most
red-blooded technologists will offer a quick opinion on what's the
greatest software ever, but when you take the time to evaluate what
makes software truly brilliant, the choices aren't so obvious.
One of the most significant pieces of programming I know wasn't even
software. Before the British built the Colossus machine, which
translated German teletype code during World War II, it took the Allies
up to six hours to decode a message and a day or more to pore over
intelligence, draw conclusions, and pass along information to military
command. After Colossus, the Allies gained a picture of German military
activity across the English Channel as the day unfolded--intelligence
that gave Gen. Dwight Eisenhower the confidence to launch the D-Day
invasion.
To the moon and back thanks to routine software
Photo courtesy of NASA
|
Colossus was built in 1944 to perform Boolean operations
on a paper data tape that streamed through the machine at 30 miles an
hour. Its logic was literally wired into the machine. It is, perhaps,
the greatest software that never got written.
So where does that leave us? First, let's set criteria for what makes
software great. Superior programming can be judged only within its
historical context. It must represent a breakthrough, technical
brilliance, something difficult that hadn't been done before. And it
must be adopted in the real world. Colossus transformed a drawn-out
mechanical process into electronics--it was an early computer--and
provided a useful service by accelerating coded teletype translation.
Colossus shaped history.
Another example of great programming was IBM's 360 system. The software
was written as the first general-purpose computer operating system in
1964. Many of the truths we assume today about software--that simple
designs are better than complicated ones, that a few skilled programmers
will accomplish more than platoons of them--are captured in Frederick
Brooks' book on the project, The Mythical Man-Month
(Addison-Wesley Professional, 1995). Brooks already knew how many things
could go wrong with big software projects before the 360 project began.
In fact, he was a critic within IBM of carrying out the project at all;
he thought it had too many potential points of failure. That's why IBM
put him in charge of it, I suppose.
Wise that they did. The result was the first computer system capable of
running different applications at the same time. It spawned the IBM line
of mainframes, which evolved into the 370 Series and present zSeries.
To this day, those systems remain backwardly compatible with Brooks' 360
operating system. Which leads me to another attribute of great
software: It's got legs. It isn't easily superseded.
We Know Great
Everybody agrees the IBM 360 was one
of the greatest pieces of software ever written. Greatness is easier to
assess given a long historical perspective. The closer you get to the
present, however, the harder it is to name the greatest software.
Well, damn the torpedoes. With great insight, I've assembled this, my
list of the greatest software ever written, from Colossus to the
present. I've consulted software guru James Rumbaugh; Stuart Feldman,
president of the Association of Computing Machinery; venture capitalists
Ann Winblad and Gary Morgenthaler; Web site scripting software (PHP
3.0) authors Zeev Suraski and Andi Gutmans; and my little brother,
Wally. The list remains my own, however. Those who find it full of wise
and inspired choices can E-mail me at the address at the end of this
story. For those who find it misguided, distasteful, or willfully
ignorant, send your message to Wally, a 6-foot-3-inch former basketball
star who still packs a wallop.
I've always been amazed at the Apollo spacecraft guidance system, built
by the MIT Instrumentation Lab. In 1969, this software got Apollo 11 to
the moon, detached the lunar module, landed it on the moon's surface,
and brought three astronauts home. It had to function on the tiny amount
of memory available in the onboard Raytheon computer--it carried 8
Kbytes, not enough for a printer driver these days. And there wouldn't
be time to reboot in case of system failure when the craft made
re-entry. It's just as well Windows wasn't available for the job.
The Apollo guidance system probably seems like routine software to
technology sophisticates. Far more complex navigational systems are in
operation today. The system's essentials were a few well-known
algorithms based on proven logic. But to me, it's still rocket science.
Great software dazzles us by virtue of what it does correctly in the
face of everything that could go wrong.
|
|
IBM 360 had staying power |
|
To
those unimpressed by the relative simplicity of the Apollo space
system, I ask this: Would you rather place your life in the hands of a
more complex system for moving things? Take, for example, the BAE
Automated Systems software that was supposed to handle baggage at the
Denver International Airport. On its October 1993 launch date, it lost
or misdirected so much luggage, or delivered so much of it into the jaws
of the conveyor, that the city had to delay opening the airport for 16
months. The cost overrun for the city: $1.1 million per day.
For that matter, our lives already are in the hands of such software.
The Federal Aviation Administration spent hundreds of millions of
dollars, not once, but three times, trying to build an effective air
traffic control system. It has thrown out about half of what it has
created, technology valued at $144 million, while the other half
periodically hiccups and stalls. Great software? I'll stick with the
Apollo guidance system. For software to be considered a success, it has
to be up to handling the job it was created to do.
That axiom certainly applies to VisiCalc, the first spreadsheet
software. It's great because it demonstrated the power of personal
computing. The software put the ability to analyze and manipulate huge
amounts of data into the hands of every business. But VisiCalc itself,
despite representing a breakthrough concept, wasn't great software. It
was flawed and clunky, and couldn't do many things users wanted it to
do. The great implementation of the spreadsheet was not VisiCalc or even
Lotus 1-2-3 but Microsoft Excel, which extended the spreadsheet's power
and gave businesspeople a variety of calculating tools. Microsoft's
claims that it makes great software are open to dispute, but the Excel
spreadsheet is here to stay. Nearly everyone is touched by it.
1 of 4
More Insights