Закон Линуса

Из Википедии, бесплатной энциклопедии

Зако́н Ли́нуса (англ. Linus's Law) — любое из двух известных эмпирических наблюдений.

  1. При достаточном количестве наблюдателей ошибки выплывают на поверхность.
  2. Прогресс означает прохождение через категории: «выживание», «социальная жизнь» и «развлечение».

Назван в честь Линуса Торвальдса, создателя ядра Linux.

Закон Линуса согласно Эрику Рэймонду[править | править код]

Согласно Эрику Рэймонду, закон Линуса гласит, что «при достаточном количестве глаз баги выплывают на поверхность» (англ. “given enough eyeballs, all bugs are shallow”); или, более формально, «при достаточном количестве бета-тестеров и сотрудников почти любая проблема будет быстро обнаружена и окажется для кого-то очевидной». Рэймонд сформулировал это правило в четвёртой части своего эссе «Собор и Базар».

Критика[править | править код]

Некоторые исследователи не согласны с правилом «достаточного количества глаз». Например, Роберт Гласс оспаривает закон Линуса и считает, что участие более двух-четырёх разработчиков в поисках багов в участке кода не повышает результативность этого поиска[1]. Майкл Хауард и Дэвид ЛеБланк утверждают, что «достаточное количество глаз» всё равно могут не заметить баг, если они недостаточно знакомы с данным участком кода; и что открытость исходного кода не гарантирует безопасность ПО, поскольку среди разработчиков, читающих код, лишь немногие умеют замечать уязвимости[2].

Следует заметить, что сам Эрик Рэймонд не согласен с популярными упрощёнными трактовками своей формулировки закона Линуса[3].

Закон Линуса согласно Линусу[править | править код]

Сам Линус Торвальдс под законом Линуса имеет в виду свои размышления о причинах развития человеческого общества, которые он изначально опубликовал в автобиографии Just for Fun[4]. В предисловии к книге Пекки Химанена «Хакерская этика и дух информационной эры» (The Hacker Ethic and the Spirit of the Information Age), Торвальдс предложил более короткую формулировку закона:

Закон Линуса гласит, что все наши мотивации можно разделить на три основные категории. И что более важно, прогресс означает прохождение через те же три категории, как «фазы» в процессе эволюции, то есть перемещение из категории в следующую категорию. Эти категории, по порядку — «выживание», «социальная жизнь» и «развлечение»[5].

Такой вариант закона Линуса похож на пирамиду потребностей по Маслоу и теорию потребностей Альдерфера.

Прочие «законы Линуса»[править | править код]

  • Торвальдс, в одном из своих сообщений в список рассылки GNOME, написал, что «закон Линуса (№ 76 из 271)» — «не следует писать, что у вашей программы есть какая-то опция, если её невозможно изменить через пользовательский интерфейс»[6].
  • «Теория и практика иногда сталкиваются. Когда это случается, теория проигрывает. Всегда»[7].

Примечания[править | править код]

  1. Robert L. Glass. About the Life Cycle // Facts and Fallacies of Software Engineering. — Addison-Wesley, 2002. — С. 174—5. — 195 с. — ISBN 0321117425.
  2. Michael Howard, David LeBlanc. Writing Secure Code, Second Edition. — Microsoft Press, 2002. — С. 616, 726. — 768 с. — ISBN 0735617228.
  3. Eric S. Raymond. Many eyes, shallow bugs — the untold story. Архивировано 15 марта 2012 года.
  4. Linus Torvalds, David Diamond. Just for Fun. — HarperBusiness, 2001. — С. 243—246. — 262 с. — ISBN 9780066620725.
  5. Pekka Himanen. The Hacker Ethic. — Random House, 2002. — С. xiv. — 256 с. — ISBN 037575878X.
  6. Printing dialog and GNOME. Дата обращения: 7 июля 2008. Архивировано 10 октября 2013 года.
  7. Torvalds, Linus. Message to Linux kernel mailing list (англ.) (25 марта 2010). Дата обращения: 25 марта 2010. Архивировано 15 марта 2012 года.