Charles Babcock over at InformationWeek has written a great cover story on "The Greatest Software Ever Written." It's a bit like the articles in Rolling Stone on the "Top 10 Albums" of all times; the choices obviously reflect the experiences and preferences of the author. So while I don't agree with all of his selections (Robert Morris' worm?) for the most part I think his logic is well founded and he has highlighted some amazing software.
I won't give away his list (just read the article) but I will offer a "Top 10" list of my own. This is completely subjective and I've precluded software that was developed when I was still in short pants. So without further adieu...
Dan Bricklin and Bob Frankston's Visicalc was the first "killer application" meaning people bought microcomputers just to run it. For the first time, mere mortals could harvest the power of a computer without having to be programmers or use a mainframe timesharing system. Sure Lotus 1-2-3 added more capabilities (graphics, macros and a completely crappy data management system) and Excel provided a modern GUI, but neither of those would have been possible without Visicalc.
9. Unix & C
The combination of Unix & C ignited an era of efficient, modular and well-designed software. Ok, maybe that was more theory than reality. Truth be told, there are many programmers who should not be allowed to use C. Still, I remember reading K&R and thinking "wow" this is the right way to do system level programming.
8. Turbo Pascal
Software impressario Philippe Kahn knew a good thing when he saw it. He bought out Anders Hejlsberg's PolyPascal and turned it into the most successful programming tool of its time. Borland's Turbo Pascal literally created the home hobbyist programming market. It showed the power of an integrated development environment (IDE) that put programmer productivity ahead of compiler theory. It also proved that software didn't have to be expensive to be good. Kahn built Borland on the vision of "Software Craftmanship" with Turbo Pascal and later Delphi among the best examples of well-written, tight code that performed flawlessly.
7. Macintosh OS
I agree with Charlie on this one. The Macintosh OS really did bring computers to the masses. I had a 512K "Fat Mac" in 1985 which I upgraded with a third party non-standard HyperDrive 10 meg hard drive and it was the cat's pyjamas. While Windows has arguably caught up with the Mac UI in recent years, the Mac set the bar for usability.
6. 3D Shooters
Ok, this is a bizarre choice and many will disagree, but hear me out. ID Software's Wolfenstein 3D, Doom and the slew of 3D shooters that followed provided a new immersive experience in gameplaying that changed the PC industry and arguably the entertainment industry. Prior to this, computer games may have been generating a billion in revenue, but it was still a backwater of the industry. With John Carmack's 3D engines, these games became part of a more mainstream entertainment experience which is now as large as Hollywood. I don't know whether this was a change for good or not, but it certainly had impact. (And those who dislike 3D shooters, feel free to substitute Simcity and it's derivatives instead.)
5. Mosaic Browser
Without the Mosaic Browser it's arguable that there wouldn't be a Netscape, Internet Explorer or even the kinds of web sites that we have today.
4. LAMP stack
While Linux clearly builds on the notions of Unix, it went even further to enable the development of the entire open source stack of Linux, Apache, MySQL and PHP / Perl / Python. Without the open source software of the LAMP stack, today's Internet-based applications and companies would not exist. You can also look at it this way: Linus Torvalds, Linux and the LAMP stack have created the only viable alternative to the Windows monopoly ever. Linus Torvalds accomplished something that IBM, Apple and others were never able to do, despite the fact that they spent billions in the process. Now that's impact!
Google's PageRank algorithm and more importantly their thousands of servers has become the starting point for finding information on the Internet. While it's not perfect, it has become a hugely indespensible tool for coping with the volume of information that's available on the net.
Who would have thought that the a couple of hackers from Scandinavia could challenge the phone system? Well since their previous product was Kazaa, you wouldn't want to underestimate their ability to create a sensation. Skype sounds like a gimmick until you use it and realize that not only is it cheaper than long distance, it's better. Way better.
Better than any other software Wikipedia represents the power of collaboration and collective knowledge. Wikipedia stands as one of the best examples of a hugely scalable system that has the potential to touch the lives of a billion people around the world. And isn't that the whole point?
Ok, every time you make a list like this, there are a few runners up that deserve mention. These include: TCP/IP, Infocom's interactive fiction games, Visual Basic, Palm OS and arguably the most popular program (at least among programmers): Hello, world! But maybe you disagree. Let me know your top 10 list.
And here are some links for those who are nostalgic.