Wirth's law

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Wirth's law is a computing adage which states that software is getting slower more rapidly than hardware becomes faster.

The law is named after Niklaus Wirth, who discussed it in his 1995 paper, "A Plea for Lean Software".[1][2] Wirth attributed the saying to Martin Reiser, who, in the preface to his book on the Oberon System, wrote: "The hope is that the progress in hardware will cure all software ills. However, a critical observer may observe that software manages to outgrow hardware in size and sluggishness."[3] Other observers had noted this for some time before; indeed the trend was becoming obvious as early as 1987.[4]

He states two contributing factors to the acceptance of ever-growing software as: "rapidly growing hardware performance," and "customers' ignorance of features that are essential-versus-nice to have".[1] Enhanced user convenience and functionality supposedly justify the increased size of software, but Wirth argues that people are increasingly misinterpreting complexity as sophistication, that “these details are cute but not essential, and they have a hidden cost”.[1] As a result, he calls for the creation of "leaner" software, and pioneered the development of Oberon, a software system developed between 1986 and 1989 based on nothing but hardware. Its primary goal was to show that software can be developed with a fraction of the memory capacity and processor power usually required, without sacrificing flexibility, functionality, or user convenience.[1]

The law was restated in 2009 and attributed to Larry Page, founder of Google. It has been referred to as Page's law.[5] The first use of that name is attributed to Sergey Brin at the Google I/O Conference 2009.[6]

Gates' law[edit]

Gates' law is a variant on Wirth's law, borrowing its name from Bill Gates,[7] the founder of Microsoft. It is a humorous and ironic observation that the speed of commercial software generally slows by 50% every 18 months, thereby negating all the benefits of Moore's law. This could occur for a variety of reasons: "featuritis", "code cruft", developer laziness, or a management turnover whose design philosophy does not coincide with the previous manager.[8]

May's law[edit]

May's law, named after David May, is a variant where:

See also[edit]


  1. ^ a b c d Niklaus Wirth (February 1995). "A Plea for Lean Software". Computer. Vol. 28 no. 2. pp. 64–68. doi:10.1109/2.348001. Retrieved 2007-01-13. 
  2. ^ Philip E. Ross. "5 Commandments". IEEE Spectrum. 
  3. ^ Reiser, Martin (1991). The Oberon System User Guide and Programmer's Manual. ACM Press. ISBN 0-201-54422-9. 
  4. ^ Geoffrey Welsh (1987). "Yes, There IS a Difference Between Micros and 'Big' Computers". TPUG News. 2 (1). Archived from the original on March 10, 2005. 
  5. ^ "Can "Page's Law" Be Broken?". Slashdot. 
  6. ^ searchengineland (2009-05-27). "Sergey Brin On Breaking "Page's Law" Of Software Sluggishness". YouTube. Retrieved 2009-05-27. 
  7. ^ a b Gates' law, from the Jargon Lexicon, in the Jargon File (version 4.4.7).
  8. ^ Orion, Egan (March 21, 2003). "WinTel trips on Linux?", The Inquirer.
  9. ^ Eadline, Douglas. "May's Law and Parallel Software". Linux Magazine. Retrieved 9 May 2011. 

Further reading[edit]

  • The School of Niklaus Wirth: The Art of Simplicity by László Böszörményi, Jürg Gutknecht, and Gustav Pomberger (editors), Morgan Kaufmann Publishers, 2000, ISBN 1-55860-723-4.