Linus's Law

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

There are two statements named Linus's Law: one by Eric S. Raymond concerning software bug detection by a community, and the other by Linus Torvalds about the motivations of programmers.

By Eric Raymond[edit]

Linus's Law as described by Raymond is a claim about software development, named in honor of Linus Torvalds and formulated by Raymond in his essay and book "The Cathedral and the Bazaar" (1999).[1][2] The law states that "given enough eyeballs, all bugs are shallow"; or more formally: "Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix will be obvious to someone." Presenting the code to multiple developers with the purpose of reaching consensus about its acceptance is a simple form of software reviewing. Researchers and practitioners have repeatedly shown the effectiveness of various types of reviewing process in finding bugs and security issues,[3] and also that reviews may be more efficient than testing.

In Facts and Fallacies about Software Engineering, Robert Glass refers to the law as a "mantra" of the open source movement, but calls it a fallacy due to the lack of supporting evidence and because research has indicated that the rate at which additional bugs are uncovered does not scale linearly with the number of reviewers; rather, there is a small maximum number of useful reviewers, between two and four, and additional reviewers above this number uncover bugs at a much lower rate.[4] While closed-source practitioners also promote stringent, independent code analysis during a software project's development, they focus on in-depth review by a few and not primarily the number of "eyeballs".[5][6]

As the Heartbleed bug shows, even shallow bugs[7] may persist in important pieces of open software—it took two years for the bug to be discovered, and the OpenSSL library containing it is used by millions of servers. Raymond said that in the case of Heartbleed, "there weren't any eyeballs".[8]

By Linus Torvalds[edit]

In the book The Hacker Ethic and the Spirit of the Information Age (2001), Torvalds introduces his law in the prologue "What Makes Hackers Tick? a.k.a. Linus's Law", suggesting that every motivation that makes a person do something can be classified under "survival", "social life" or "entertainment".[9] As a result, he writes, progress is defined as reaching a higher category; that is, not doing a thing merely for survival, but for social reasons, and then, even better, just for fun.

See also[edit]

References[edit]

  1. ^ Raymond, Eric S.. "The Cathedral and the Bazaar". catb.org. 
  2. ^ Raymond, Eric S. (1999). The Cathedral and the Bazaar. O'Reilly Media. p. 30. ISBN 1-56592-724-9. 
  3. ^ Pfleeger, Charles P.; Pfleeger, Shari Lawrence (2003). Security in Computing, 4th Ed.. Prentice Hall PTR. pp. 154–157. ISBN 0-13-239077-9. 
  4. ^ Glass, Robert L. (2003). Facts and Fallacies of Software Engineering. Addison-Wesley. p. 174. ISBN 0-321-11742-5.  ISBN 978-0321117427.
  5. ^ Howard, Michael; LeBlanc, David (2003). Writing Secure Code, 2nd. Ed.. Microsoft Press. pp. 44–45, 615. ISBN 0-7356-1722-8. 
  6. ^ Howard, Leblanc. p 726.
  7. ^ Alex Hern, "Heartbleed: developer who introduced the error regrets 'oversight'", The Guardian, April 11, 2014 full text: "The flaw ... is almost painfully simple."
  8. ^ Nicole Perlroth, "Heartbleed Highlights a Contradiction in the Web", New York Times, April 18, 2014 full text
  9. ^ Himanen, Pekka; Torvalds, Linus; Castells, Manuel (2001). The Hacker Ethic. Random House. p. xiv. ISBN 0-375-50566-0. 

Further reading[edit]