IntroductionToo many people confuse software innovations with other factors, such as the increasing speed of computer and network hardware. This paper tries to end the confusion by identifying the most important innovations in software, removing hardware advances and products that didn’t embody significant new software innovations. This paper presents its criteria for the most important software innovations and sources, the software innovations themselves, discusses software patents and what’s not an important software innovation, and then closes with Conclusions.
Criteria
This paper lists the “most important software innovations,” so we first need to clarify what each of those words mean:
1) To be a “most important” innovation, an innovation has to be an idea that is very widely used and is critically important where it applies. Innovations that are only used by a very small proportion of software (or software users) aren’t included.
2)To be a “software” innovation, it has to be a technological innovation that impacts how computers are programmed (e.g., an approach to programming or an innovative way to use a computer). I’m intentionally omitting computer hardware innovations or major hardware events that don’t involve software innovation. For example, court cases have decided that John Vincent Atanasoff is the legal inventor of the electronic digital computer, but that’s a hardware innovation. I’ve omitted other strictly hardware innovations such as the transistor (1947) and integrated circuits (1958). I’ve also omitted Ethernet, which Bob Metcalfe developed in 1973, for the same reason.
I’ve omitted inventions that aren’t really technological inventions (e.g., social or legal innovations), even if they are important for software technology and/or are widespread. For example, the concept of a copylefting license is an innovative software licensing approach that permits modification while forbidding the software from becoming proprietary; it is used by a vast array of software via the General Public License (GPL). The first real copylefting license (the Emacs Public License) was developed by Richard Stallman in 1985 - but since copyleft is really a social and legal invention, not a technological one, it’s not included in this list. Also, the “smiley” marker :-) is not included - it’s certainly widespread, but it’s not really critical for use of computers, and it’s really a social invention not a technological one.
3) We also have to define “innovation” carefully. An “innovation” is not simply combining two functions into a single product - that’s “integration” and usually doesn’t require any significant innovation (just hard work). In particular, integrating functions to prevent customers from using a competitor’s product is “predation,” not “innovation.” An “innovation” is not a product, either, although a product may embody or contain innovations. Re-implementing a product so that it does the same thing on a different computer or operating system isn’t an innovation, either. An innovation is a new idea. And in this paper, what’s meant is a new idea in software technology.
As a result, you may be surprised by the number of events in computing history that are not on this list. Most software products are not software innovations by themselves, since most products are simply re-implementations of another idea. For example, WordStar was the first microprocessor word processor, but it wasn’t the first word processor - WordStar was simply a re-implementation of a previous product on a different computer. Later word processors (such as Word Perfect and Word) were re-implementations by other vendors, not innovations themselves. Some major events in computing are simply product announcements of hardware, and have nothing to do with innovations in software. Thus, while the IBM PC and Apple ][’s appearances were important to the computing world, they didn’t represent an innovation in software - they were simply lower-cost hardware, with some software written for them using techniques already well-known at the time.
Occasionally a product is the first appearance of an innovation (e.g., the first spreadsheet program), in which case the date of the product’s release is the date when the idea was announced to the public. Some innovations are innovative techniques, which aren’t directly visible to software users but have an extraordinary effect on software development (e.g., subroutines and object-orientation) - and these are included in this list of software innovations. For the more debatable entries, I’ve tried to discuss why I believe they should be included.
I’ve tried to identify and date the earliest public announcement of an idea, rather than its embodiment in some product. The first implementation and first widespread implementation are often noted as well. “Public” in this case means, at least, an announcement to a wide inter-organizational audience. In some cases identifying a specific date or event is difficult; I welcome references to earlier works. For example, sometimes it is difficult to identify a “first” because an idea forms gradually through the actions of many.