Wirth's Law is a famous quote from Niklaus Wirth, a Swiss computer scientist. In 1995, he proposed an adage that: “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. Slow software growth can be attributed to software creeping featuritis. Also, extra features added in the software may exceed its main function and code cruft, and the amount of irrelevant code is high in the developed code.
The problem is not entirely caused by bloated software applications. An advanced operating system run on less powerful hardware will run slowly. For example, running Windows 7 on a computer meant for running Windows XP will slow the system. Similarly, the user invoking a large number of applications simultaneously will experience slow software performance. Similarly, the presence of adware, spyware, malware, viruses and Trojans can slow a system down. Therefore, the statement that software speed is slowed down due to bloated software size is not entirely accurate. 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."Even though hardware has evolved over the previous decades, software has not necessarily become faster. Some software still runs much slower than previous versions or similar earlier software. For example, a word processor in 1970s took only 10kb of memory, while the same application takes over 100MB today. The advantage is that the processing speed has increased considerably compared to the previous applications. This obeys Moore’s law. The increasing complexity of software over the years has been termed 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. 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. 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.
Read More »