Why Moore's Law is Irrelevant
Wirth's Law
Software gets slower faster than hardware gets faster
Memory requirements of today's workstations typically jump substantially -- from several to many megabytes --whenever there's a new software release.
When demand surpasses capacity, it's time to buy add-on memory. When the system has no more extensibility, it's time to buy a new, more powerful workstation.
Do increased performance and functionality keep pace with the increased demand for resources? Mostly the answer is no.
Software's girth has surpassed its functionality, largely because hardware advances make this possible.
-- Niklaus Wirth, 1995
Many developers seem to assume that Moore's Law, with its prosect of endless capacity growth, will rescue them from any performance problem. But this vision of unlimited scalability will always be just that -- a vision, not a reality.
If you're reading anything on this site, I think its safe to assume that you're familiar with Moore's Law. Anyone old enough to have owned a few computers has experienced Moore's Law at work in the progressive increases in the processing power of each new generation of hardware.
Actually, this “law” is really an empirical observation. In 1965, Gordon Moore, a founder of Intel Corporation, predicted that microprocessor complexity -- and power -- would double every two years, a prediction that turned out to be surprisingly accurate over the next 40 years.
But while Moore's law is almost a household term, how many people have even heard of Wirth's Law? Yet it describes a parallel phenomenon, and one that arguably has affected our lives every bit as much -- the systematic slowing of software performance. In fact, as Wirth observed, in the race between hardware efficiency and software bloat, the software developers are "winning".
Nicklaus Wirth is a famous Swiss computer scientist. In 1984, he was awarded the ACM Turing Award, sometimes called the Nobel Prize of Computing. In 2004, he was named a Fellow of the Computer History Museum. These awards recognized his pioneering work in software engineering and his design of several programming languages, including Pascal. The amusing observation known as Wirth's Law -- software gets slower faster than hardware gets faster -- comes from an IEEE paper that he wrote late in his career as a scientist and professor, A Plea for Lean Software (1995).
Software efficiency was always a focus of Wirth's, and one that he evidently instilled in his students at the ETH Zurich where he taught from 1968 onwards. Perhaps the most notable example is Phillipe Kahn, who founded Borland, a company that competed head-to-head with Microsoft for more than 10 years on the strength of its suite of highly efficient software development tools. In particular, the software product that first made Borland famous in the early 1980's was Turbo Pascal, a lightning-fast compiler for Pascal, the programming language that Niklaus Wirth himself invented. Of course, we all know that Microsoft (and software bloat) won in the end.
Parkinson's Law
Wirth is not alone in his conclusions about the all-consuming march of software bloat. In Chapter 1 of my book, High-Performance Client/Server [Amazon], discussing the importance of performance management, I wrote:
Technology: A Vision of Unlimited Capacity
Some optimists take the view that the relentless march of technological improvement will soon render performance issues redundant. As evidence, they often point to Moore’s Law, which suggests that processor speed doubles about every 18 months. Memory sizes and speeds follow a similar pattern. This surprising rate of progress spans the past 20 years, as miniaturization packs ever more circuits into silicon chips. According to the engineers, we can expect this trend to continue for another 20 years.
At the same time, communications technologies are rapidly growing in penetration and power. Driven by the explosive growth of Internet technology, formerly separate islands of computing are becoming networked enterprises. LAN technology has gone from 4 Mb/s to 10 Mb/s and is now moving towards 100Mb/s, while standards are being developed that will allow future WANs to support speeds up to 2400 times faster than the typical 64Kb/s available today. Industry analysts like to make bold projections of the unlimited possibilities for computing in the coming post-scarcity environment.
This enticing vision of unlimited computing power has encouraged some people to conclude that advances in hardware alone will be sufficient to overcome any concerns about software performance. While this is probably a comforting thought for all those people who never understood performance in the first place, it is a risky position to take if you are responsible for the success of a mission critical application.
So, if you really believe that tomorrow’s high-speed hardware will guarantee your application’s responsiveness, then return this book to the shelf. Get the latest distributed objects technology and start coding that neural net application. Look for patterns in the 2000 tables that -- spread across 10 business systems in 25 locations -- collectively comprise the database for your enterprise.
On the other hand, perhaps you are more like us. We are doubters. Of course, no one can truly know the future, but we can at least learn from the past. And since we have already experienced 20 years of this phenomenal rate of growth in computing power, why do we still have huge performance problems today? How will the next 20 years be any different? We suspect that those making optimistic projections have forgotten a crucial variable in their performance models: growth in demand.
In 1677, Benedict de Spinoza observed that nature abhors a vacuum. Almost 300 years later (in 1957), Cyril Northcote Parkinson coined his famous law, Work expands to fill the time available for its completion. This idea has its parallels in many other areas of life -- for example, freeway traffic expands to fill the lanes available, our spending expands to match or exceed our income. Economists talk of “pent-up demand”, and note how demand expands to match the supply of a scarce commodity.
After 25 years of experience in the computer industry, we cannot avoid the conclusion that software and hardware enjoy a similar relationship. Have you noticed that, no matter how much more disk space you get, your new software promptly eats up half of it, and your files soon fill up the remainder? In our opinion, for every amazing new increase in capacity the hardware engineers can produce, there will be armies of software engineers with new ways to consume it.
The bottom line is this: Software workloads expand to consume the available computing capacity.
-- Chris Loosley, High-Performance Client/Server, 1998 [links added]
I wrote that in the spring of 1997, unaware of Wirth's paper. Ten years later, I'm older (certainly), wiser (maybe), and (thanks to the Web, Google, and Wikipedia) better informed. Indeed, I see that the Wikipedia entry for Parkinson's Law actually suggests the generalization that "The demand upon a resource always expands to match the supply of the resource." So I see no reason to change my original conclusion.
In fact, over the last ten years I've experienced a related phenomenon -- Web sites grow to consume the available network capacity. But that's a subject for another post.
This post is the first in a new series on fundamental truths about performance.
Tags:
performance wisdom,
performance,
Moore's Law,
Niklaus Wirth,
Wirth's Law,
Turing Award,
Pascal,
Parkinson's Law,
software bloat,
Phillipe Kahn,
Borland,
Turbo Pascal


Reader Comments (4)
Chris,
I am so impressed with your website, it is way over ny head, but well written and I find it fund to read stuff that is written following the rules of the Queen's English.
Rodney
Rodney,
I appreciate the compliments about my writing, and I seriously doubt that the content is as far "over your head" as you claim. But please feel free to post follow-up questions about anything. In fact, I will add a "Performance Forum" section to the site for that purpose. Look for it soon in the sidebar.
--Chris
check your facts. Moore is NOT dead.
Al,
Thank you. I have corrected my mistake, and I am suitably embarrassed. I usually DO check my facts, but in this case my source was wrong. Unfortunately, the source was something I wrote myself, 10 years ago, which is doubly embarrassing.
--Chris