Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Заявление Эрика С. Реймонда о разработке программного обеспечения 1999 года, названное в честь Линуса Торвальдса.
1999 claim by Eric S. Raymond about software development, named after Linus Torvalds
В разработке программного обеспечения закон Линуса – это утверждение, что «при достаточном количестве внимательных взглядов все ошибки неглубоки». Этот закон был сформулирован Эриком С. Реймондом в его эссе и книге «Собор и базар» (1999) и назван в честь Линуса Торвальдса. Более формальное определение: «При наличии достаточно большой базы бета-тестеров и соавторов почти любая проблема будет быстро выявлена, а решение станет очевидным для кого-либо». Представление кода нескольким разработчикам для достижения консенсуса о его принятии является простой формой проверки кода. Исследователи и практики неоднократно демонстрировали эффективность процессов проверки в поиске ошибок и уязвимостей в системе безопасности.
In software development, Linus's law is the assertion that "given enough eyeballs, all bugs are shallow". The law was formulated by Eric S. Raymond in his essay and book The Cathedral and the Bazaar (1999), and was named in honor of Linus Torvalds. A more formal statement is: "Given a large enough beta tester and co developer base, almost every problem will be characterized quickly and the fix 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 reviewing processes in finding bugs and security issues.
Действительность
В книге «Факты и заблуждения о программной инженерии» Роберт Гласс называет этот принцип «мантрой» движения открытого исходного кода, но считает его заблуждением из-за отсутствия подтверждающих доказательств и потому, что исследования показали, что скорость обнаружения дополнительных ошибок не масштабируется линейно с количеством проверяющих; скорее, существует небольшое максимальное количество эффективных проверяющих – от двух до четырех, и добавление проверяющих сверх этого числа приводит к обнаружению ошибок с гораздо меньшей скоростью. Специалисты, работающие с закрытым исходным кодом, также продвигают строгий независимый анализ кода в процессе разработки программного проекта, но они сосредотачиваются на глубоком анализе небольшим числом экспертов, а не на количестве «глаз». Продолжительное существование уязвимости Heartbleed в критически важном коде в течение двух лет рассматривалось как опровержение принципа Реймонда. В 2015 году исполнительный директор Linux Foundation Джим Землин утверждал, что сложность современного программного обеспечения возросла до такой степени, что для повышения его безопасности целесообразно выделение специализированных ресурсов. Говоря о некоторых из крупнейших глобальных уязвимостей программного обеспечения с открытым исходным кодом в 2014 году, он отметил: «В этих случаях достаточно внимания не уделялось». Крупномасштабные эксперименты или рецензируемые исследования для проверки практической применимости этого принципа не проводились. Эмпирическое подтверждение принципа Линуса было получено путем сравнения популярных и непопулярных проектов в рамках одной организации. Популярными проектами считались проекты, входящие в 5% лучших по количеству звезд на GitHub (7481 звезда и более). Выявление ошибок измерялось с помощью вероятности корректирующих коммитов – отношения коммитов, идентифицированных как связанные с исправлением ошибок. Анализ показал, что в популярных проектах наблюдался более высокий коэффициент исправления ошибок (например, популярные проекты Google имели на 27% более высокий коэффициент исправления ошибок, чем менее популярные проекты Google). Поскольку маловероятно, что Google снизил стандарты качества кода в более популярных проектах, это указывает на повышение эффективности обнаружения ошибок в популярных проектах.
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. 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". The persistence of the Heartbleed security bug in a critical piece of code for two years has been considered as a refutation of Raymond's dictum. In 2015, the Linux Foundation's executive director Jim Zemlin argued that the complexity of modern software has increased to such levels that specific resource allocation is desirable to improve its security. Regarding some of 2014's largest global open source software vulnerabilities, he says, "In these cases, the eyeballs weren't really looking". Large scale experiments or peer reviewed surveys to test how well the mantra holds in practice have not been performed. Empirical support of the validity of Linus's law was obtained by comparing popular and unpopular projects of the same organization. Popular projects are projects with the top 5% of GitHub stars (7,481 stars or more). Bug identification was measured using the corrective commit probability, the ratio of commits determined to be related to fixing bugs. The analysis showed that popular projects had a higher ratio of bug fixes (e. g., Google's popular projects had a 27% higher bug fix rate than Google's less popular projects). Since it is unlikely that Google lowered its code quality standards in more popular projects, this is an indication of increased bug detection efficiency in popular projects.