Niiklaus Wirth, a Swiss computer scientist, in 1995 proposed an adage that “Software is getting slower more rapidly than hardware is getting faster.”
Wirth’s Law contradicts Moore’ law by stating that the numbers of transistors present on an integrated chip doubles every year. The main statement made within Wirth’s law is: “Software expands to fill memory and software is getting slower more rapidly than hardware is getting faster.” The law implies that while hardware progress has been rapid over the years, the same cannot be said of software. It also states that software complexity increases at a higher rate than hardware complexity.
Wirth argues that although processing speed has continually increased over the years and continues to do so, the software running our applications isn’t much faster — and indeed, it’s sometimes even slower — than older software that ran on much leaner processing machines more than 40 years ago. A word processing program from the 1970s, for example, might have only needed 8,000 bytes to run properly, an astonishingly low amount of memory by today’s standards; however, current word processing applications need hundreds of times more storage to get essentially the same simple task done. The only reason we can actually use these programs, even supposedly simple ones like Microsoft Word, is because of the increase in processing speed that comes from Moore’s Law.
The increasing complexity of software over the years is known as software bloat. Since more and more processing power gets added to the hardware devices, software developers increase the complexity of the software, consistent with the first statement made by Wirth.
The reason why software is sometimes getting slower from a user’s point of view is because the software does a lot more, most of which are not directly related to the task that the user wants to solve. A lot of unwanted features are added to basic software supporting core essential features to gain publicity during marketing campaigns, and creeping featuritis arises. In the name of user-friendly software, complexity and code cruft is added by the developer.
The problem defined by Wirth’s Law is not entirely caused by bloated applications. If the operating system on a PC is too advanced for the available memory and processing speed, that computer may run slowly. This can occur, for example, if Windows Vista is installed on an old computer designed for Windows 98. Poor system performance can result from the presence of viruses, Trojans, spyware or severe fragmentation of data stored on the hard disk. A system can also be slowed if the user tries to run too many applications at once, allowing too many programs to load at startup or run a “heavy-handed” system security utility.
In short, Wirth’s law concludes that the fewer calculations made by the processor for performing a task, the more efficient the design and the more Moore’s Law can be obeyed. The fewer calculations a computer chip has to make from a program’s computer language, the more efficient our work will actually be.