リーナスの法則

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

リーナスの法則(リーナスのほうそく、Linus's Law)とは、同じ名前が付けられているものの、次の人物らが述べた、それぞれともに内容が異なる経験則を指す。エリック・S・レイモンドフリーソフトウェアバグをコミュニティが探し出すことに対し、この法則の存在を語っており、リーナス・トーバルズ自身は、コーディングなどプログラマに関するモチベーション、動機付けについて、この法則の存在を述べている。

エリック・レイモンドによるリーナスの法則[編集]

レイモンドによるリーナスの法則は、彼のエッセイならびに書籍、『伽藍とバザール』("The Cathedral and the Bazaar", 1999年)にて主張したソフトウェア開発における法則である[1][2]。リーナスに敬意を表し彼の名前が付けられている。

この法則は、「十分な目ん玉があれば、全てのバグは洗い出される」("Given enough eyeballs, all bugs are shallow")、もっと格式ばって言うと、「十分なベータテスターと共同開発者がいれば、ほとんど全ての問題は、すぐさま明らかになり、すぐさま修正される」("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.")と主張している。コードのプロジェクトへの受け入れに関する同意を得て、コミュニティが合意形成(コンセンサス)に到るためには、コードを複数のプロジェクトの開発者に説明することになるが、それは、ソフトウェア・レビューの単純な形式のひとつである。この事実に対し、研究者、専門家はバグやセキュリティ問題の発見におけるレビュー・プロセスの効果を繰り返し示しており[3]、そしてそれは単にテストを行う以上に効率が良いとされる。

オープンソースの敵対者はこの法則を批判しており、(テスターに比して)開発者の規模が効率的な作業を行うのに十分ではないと主張している。たとえば、Facts and Fallacies about Software Engineering[4]という書籍において、ロバート・グラス(Robert Glass)は、リーナスの法則を、オープンソース運動におけるマントラ(のようなお題目)であるのは間違いないが、それが誤解を生んでいるとも述べている[5]。彼は、彼の研究により、コードを監査する人間が過剰なほど多く存在する場合は、多くのバグは潰されていくことが分かったが、同時に、それはこの法則が述べていることを支持するものではない、と主張している。興味深いことに、クローズドソース開発に関する専門家は、ソフトウェアプロジェクトの開発において、厳重にコードの独立性を担保するよう推進しているが、これにより法則の概念を暗黙のうちに支持している[6][7]

リーナス・トーバルズによるリーナスの法則[編集]

"The Hacker Ethic and the Spirit of the Information Age英語版"(邦題『リナックスの革命』、2001年)の序文によると、トーバルズ自身はこの法則を次の理由を説明するために採用している。人に何かをさせる動機は常に次のいずれかの集合のうち一つに分類される。すなわち、「生きること」("Survival")、「社会における生活」(社会生活、"Social life")、そして、「享楽娯楽」("Entertainment")である[8]。これらはマズローの欲求段階と酷似するものである。結果として、リーナスは進歩とはより高い次元に達することであると定義している。それすなわち、彼は人の動機付けについて、単に生存を目的として行動するだけではなく、社会での生活を目的に行動することもあり、そして次に、さらに良いものとして、「ただ楽しいからやる」のである、と述べている。

脚注[編集]

  1. ^ Raymond, Eric S.. “Release Early, Release Often (早めのリリース、しょっちゅうリリース) - The Cathedral and the Bazaar”. catb.org. 2011年2月20日閲覧。
  2. ^ Raymond, Eric S. (1999). The Cathedral and the Bazaar. O'Reilly Media. p. 30. ISBN 1-56592-724-9. http://books.google.com/books?id=F6qgFtLwpJgC&pg=PA30#v=onepage&f=false. 
  3. ^ Pfleeger, Charles P.; Pfleeger, Shari Lawrence (2003). Security in Computing, 4th Ed.. Prentice Hall英語版 PTR. pp. 154–157. ISBN 0-13-239077-9. http://books.google.com/books?id=O3VB-zspJo4C&pg=PA154#v=onepage&f=false. 
  4. ^ 直訳すると「ソフトウェア・エンジニアリングにおける事実と誤謬」。日本語翻訳された書籍:「ソフトウエア開発 55の真実と10のウソ」(ISBN 978-4822281908)
  5. ^ Glass, Robert L. (2003). Facts and Fallacies of Software Engineering. Addison-Wesley英語版. p. 174. ISBN 978-0321117427. http://books.google.com/books?id=3Ntz-UJzZN0C&pg=PA174. 
  6. ^ Howard, Michael; LeBlanc, David (2003). Writing Secure Code, 2nd. Ed.. Microsoft Press英語版. pp. 44–45, 615. ISBN 978-0735617223. http://books.google.com/books?id=_7LEW8VHZk4C. 
  7. ^ Howard, Michael; LeBlanc, David (2003). Writing Secure Code, 2nd. Ed.. Microsoft Press英語版. pp. 726. ISBN 978-0735617223. http://books.google.com/books?id=_7LEW8VHZk4C. 
  8. ^ Himanen, Pekka; Torvalds, Linus, Castells, Manuel (2001). The Hacker Ethic. New York: Random House. p. xiv. ISBN 0-375-50566-0. http://books.google.com/books?id=4SeIQZjpzCwC&pg=PT10#v=onepage&q&f=false. 

関連項目[編集]