«Открытый исходник» означает не только программное обеспечение, но и способ его разработки и понимание того, как надо поддерживать общественные блага. Вот что писал Эрик Рэймонд насчет различия в «соборном и базарном» подходе к разработке сложного программного обеспечения:
«Наиболее существенная особенность Linux
относилась, однако, не к технической, а к социальной стороне. До появления Linux считалось, что создание такого сложного программного обеспечения, как операционная система, возможно лишь согласованными усилиями относительно небольшой, сплоченной группы людей. Эта модель была и остается типичной как для коммерческого, так и для свободного ПО, возводимого в обоих случаях подобно тому, как строились соборы… Развитие Linux шло по совершенно иному пути. С самого начала она создавалась случайными усилиями большого числа добровольцев, координируемыми сугубо через Интернет. Качество разработки достигалось не жесткими стандартами или единоначалием (autocracy), а крайне простым подходом: еженедельно выкладывать исходники и в течение нескольких дней получать отклики от сотен пользователей. Такой подход позволил создать нечто вроде ускоренного дарвиновского отбора посредством мутаций, вносимых разработчиками» [53].Как раз благодаря тому, что программное обеспечение обдуманно создавалось в виде общественного блага, вы можете теперь для просмотра лежащей перед вами книги набрать ее адрес в сети посредством букв www.smartmobs.com
, а не набора чисел; система «доменных имен» в Интернете зависит от программного обеспечения BIND, пожалуй, чаще всего используемого ПО, которое никому не принадлежит и воспользоваться которым может всякий [54]. Когда пришла пора ARPAnet стать сетью сетей, кудесники программирования, создавшие основные протоколы Интернета, осознали, что решения, принимаемые ими в отношении этого программного обеспечения, скажутся на работе будущих поколений изобретателей. Построенные ими первые протоколы по рассылке данных в сети имели ощутимые социальные последствия: «основной их довод состоял в том, что некоторые требуемые сквозные действия (end-to-end functions) могут исправно исполняться лишь самими оконечными системами… Задача сети состоит в максимально эффективной и гибкой передаче датаграмм. Остальная работа возлагается на периферию (fringes) [55] (датаграмму можно представить в виде небольшого куска данных с указанием адреса).Придерживаясь одного из выявленных Остром организационных начал — в сложных социальных системах уровни управления надстраиваются друг над другом, — архитекторы Интернета пришли к «сквозному» принципу, позволяющему самим изобретателям, а не контролерам Сети решать, что им строить, исходя из возможностей Интернета. При создании в физической лаборатории Женевы ПО для сети Всемирной паутины Тиму Бернерсу-Ли не требовалось разрешения на изменение работы Интернета, так как Интернет претерпевает изменения в подключаемых компьютерах («периферии»), а не в центральной Сети. Бернерс-Ли просто написал программу, работавшую с интернетовскими протоколами, и подвигнул ряд своих коллег на создание узлов Сети; сеть распространялась подобно заразе, а не по разнарядке [56].
В 1993 году Марк Андреессен вместе с другими программистами из Национального центра по приложениям для суперЭВМ {
National Center for Supercomputing Applications — NCSA) При Иллинойском университете выпустил Mosaic, «обозреватель» (браузер), сделавший Сеть доступной с помощью «мышиного» интерфейса — «указал и щелкнул». Ведущие создатели Mosaic перешли из NCSA, общественного учреждения, предоставлявшего свое ПО для общего пользования, в компанию Netscape, «закрывшую» код обозревателя. С выпуском Netscape в 1994 году своих акций на рынок Марку Андрерссену привалило богатство. Если интернет-индустрия из ничего превратилась в «величайшую в истории законную сокровищницу» [57], Сеть тоже явилась некоммерческим созданием программистов, родившихся после появления ARPAnet. Добровольцы начали обмениваться ПО в целях улучшения веб-сервера*, созданного программистами NCSA. Подобно тому как обозреватель служит для навигации в Сети, веб-сервер служит для выставления информации в Сети. Эти программисты-добровольцы сошлись во мнении, что сохранение ПО для веб-сервера свободным и открытым — основа поддержания духа новаторства.*Веб-сервер, или интернет-сервер, — компьютер, предоставляющий пользователям Интернета и интрасетей доступ к службам и страницам WWW