Программирование в открытых кодах становится явлением общественной и экономической жизни. Его проявления нуждаются в серьезном изучении представителями самых разных специальностей, от экономистов и юристов до психологов, философов и даже этнографов.
Еще в далекие 70-е годы, с появлением мини-ЭВМ, программисты обнаружили возможность обмениваться результатами своего труда на безвозмездной основе. Сами того не желая, они открыли возможность реализации неведомого прежде феномена — коллаборативной деятельности людей, не объединенных в формальные коллективы. Тогда-то и сложились первые подобные группы.
Помимо прочей деятельности они издавали сборники программ на полудюймовых лентах, которые стихийно тиражировались и распространялись. Среди подобных объединений пользователей наиболее известной была группа DECUS (Digital Equipment Corporation Users Group). Не исключено, что особое отношение к компании DEC, сохраняющееся годы спустя после ее исчезновения, объясняется в том числе и существованием этой группы. В последующем большинство компаний перестало поддерживать этот вариант каналов свободного обмена знаниями, и, возможно, ничего из того, о чем пойдет речь в этой статье, и не было бы, если бы не одно знаменательное событие.
Знаменитая исследовательская лаборатория Bell Laboratories, входившая тогда в состав корпорации AT&T, видимо, не придавая особого значения новой операционной системе Unix, позволила нескольким университетам поэкспериментировать с ней. Среди избранных университетов оказался и «левацкий» Беркли (Калифорния), студенты которого отличаются увлечением маоизмом, троцкизмом и прочими странностями, отвергающими буржуазный миропорядок. Это придало эксперименту с ОС Unix особое звучание и привело к непредсказуемым последствиям.
Не все из того, что присуще революционным взглядам, заслуживает полного отрицания. Порой они могут привести к позитивным последствиям (вот хотя бы к неожиданному повороту в судьбе Unix), хотя нам, жителям страны, пережившей 70-летний эксперимент, сложно это признать. Как бы то ни было, в конце 70-х годов исследовательская группа Computer Systems Research Group Университета Беркли, движимая научными интересами и чувством социальной справедливости, приступила к экспериментам над ОС Unix. Их результатом стал свободно распространяемый дистрибутив Berkeley Software Distribution, более известный как BSD Unix.
Аналогичные работы по созданию свободно распространяемого программного обеспечения велись в целом ряде американских университетов, в частности — в Массачусетском технологическом институте, известном своей хакерской культурой. Отсюда и пошло название «хакер», используемое в том числе и для обозначения программиста, создающего бесплатные программы. Первая волна свободно распространяемых программ прочно ассоциируется с мини-ЭВМ, благодаря которым компьютеры вышли из неприступных стеклянных машинных залов и приблизились к пользовательскому сообществу.
Движения Free Software и Open Source
С появлением персональных компьютеров и коммерциализацией программного обеспечения классическое хакерское движение со своей специфической культурой, созданной хиппующим поколением «детей цветов», пошло на убыль. В 1984 году обеспокоенный деградацией хакерства Ричард Столлмен начал работать над хорошо теперь известным проектом GNU и спустя год создал общественную организацию Free Software Foundation (FSF). Именно Столлмен дал определение понятию free software и предложил концепцию Copyleft, согласно которой программам и программистам гарантировались четыре типа свободы:
- свобода 0 — право на выполнение программ для любых целей;
- свобода 1 — право на изучение и модификацию программ, обеспеченное возможностью доступа к кодам;
- свобода 2 — право на копирование и передачу копий;
- свобода 3 — право на улучшение программ и передачу сообществу усовершенствованных версий.
Эти права закреплены в лицензиях различного типа, в том числе GNU General Public License и BSD.
Среди наиболее известных проектов из категории Free Software можно назвать следующие:
- ядра операционных систем Linux и BSD;
- компиляторы GCC и отладчик GDB;
- сервер имен BIND (Berkeley Internet Name Daemon);
- транспортный сервер для электронной почты Sendmail;
- Web-сервер Apache;
- СУБД MySQL и PostgreSQL;
- языки программирования Perl, Python, Tcl и PHP;
- настольные среды GNOME и KDE;
- офисный пакет OpenOffice;
- браузер Mozilla.
Одним из наиболее масштабных проектов стал Debian, основанный в 1993 году Яном Мэрдоком из Университета Пэрдью. В качестве цели проекта называлась защита свободы Linux в духе GNU.
На почве Free Software выросла еще одна инициатива, Open Source Initiative, представляющая собой иную интерпретацию классической хакерской культуры. Днем ее рождения считается 3 февраля 1998 года, когда в Пало-Альто состоялась встреча нескольких энтузиастов; основным проповедником и лидером нового движения стал Эрик Рэймонд. В отличие от альтруистической идеи free software, новое начинание имело определенную бизнес-концепцию. А отрицание принципов материальной заинтересованности, проповедовавшееся Ричардом Столлменом, дорого обошлось первопроходцам Free Software.
Подтверждение этих слов мне довелось получить в беседе с Эриком Алманом, разработчиком Sendmail и одним из самых известных представителей первого поколения хакеров. Дитя своего времени, типичный берклиец со своеобразным и совершенно непонятным для многих образом жизни, с иными, чем у большинства людей, представлениями о материальной и иных сторонах человеческого существования сегодня изменился. Осознав упущенное, Алман пытается поставить свое детище на коммерческие рельсы, организовал собственную компанию и откровенно сожалеет, что раньше не получил положенного за созданное им. Не станем обсуждать, почему можно было быть бессребреником двадцать лет назад, но нельзя сейчас: скорее всего, просто каждое время диктует свои правила.
Исходя из новой реальности, основоположники инициативы Open Source Initiative задумали привлечь более широкий общественный интерес к свободному программному обеспечению и заинтересовать в этой методологии крупные организации. Идеология нового движения был изложена в программной статье Рэймонда The Cathedral and the Bazaar. (Многим русскоязычным читателям она хорошо известна под названием «Собор и базар», хотя это и не совсем точный перевод: в оригинале нет намека на «базарность», а слово bazaar чаще переводится как «благотворительная распродажа» или «большой универсальный магазин». Имеет смысл прочитать и статью живущего в США Николая Безрукова «Повторный взгляд на собор и базар».)
Термин Open Source был избран, чтобы избежать двусмысленности английского слова free, которое можно понимать и как «свободное», и как «бесплатное». Движения Free Software и Open Source преследуют противоположные цели, их приверженцы расходятся в видении мира, в этических принципах, но могут работать над одними и теми же проектами, например Debian. Для Open Source бесплатность кодов — это прежде всего методология разработки, а для Free Software — решение социальной проблемы. Движения Free Software и Open Source представляют собой два политических лагеря в одной социальной среде, причем первый отличается большим радикализмом. К счастью, данное соперничество носит мирный характер.
Для уточнения терминологии и снятия противоречий между двумя движениями Европейская комиссия предложила в июне 2001 года гибридный термин FLOSS (Free/Libre and Open Source Software), объединяющий Open Source Software с Free Software. Будем его придерживаться, рассуждая о программном обеспечении. Однако Эрик Рэймонд и его единомышленники, предложив идею Open Source, обозначили гораздо большее по масштабу явление, чем то, которое получило название Open Source Culture. (В последнем случае подразумевается не культура самого движения, а открытые источники как феномен современной культуры в целом.)
Культура Open Source и свободная культура
В более широком смысле, в приложении к интеллектуальным и творческим явлениям вообще, а не только к технологии и методологии программирования, Open Source означает новый тип культуры, отличающийся способами потребления и создания культурных ценностей. Программное обеспечение оказалось удачной моделью, позволившей переосмыслить отношение к авторскому праву и интеллектуальной собственности в новой коммуникационной среде.
Ключевым является вопрос о фиксации оригинала. Проще всего говорить об авторском праве, когда есть уникальный оригинал, а все остальное — копии; к примеру, это присуще живописи и скульптуре. Именно такие оригиналы становятся предметами коллекционирования и имеют соответствующие цены. С авторскими правами на литературные произведения и фотографии дело обстоит сложнее; именно в этих сферах творческой деятельности впервые получили распространение пиратство и плагиат. Еще сложнее разобраться в ситуации, если оригинал фиксируется в цифровом виде и при тиражировании ничего не теряет, что создает благодатные условия для пиратства. И уж совсем сложной ситуация становится, когда фиксация произведения оказывается общедоступной благодаря средствам передачи оригинала на расстояние. Перед нами совершенно новый, еще не вполне осознанный феномен, связанный с распространением современных средств коммуникаций и разрушающий сложившиеся представления о праве на интеллектуальную собственность.
Как быть? Бороться с пиратством или искать альтернативную модель распространения культурных ценностей? Один из возможных путей подсказывает культура Open Source. Чем больше областей современной жизни оказывается под влиянием технологий репродуцирования культурных ценностей, тем важнее становятся признание факта существования Open Source Culture и выработка новых способов охраны авторских прав.
Несовершенство нынешних подходов к авторскому праву обнаружилось с появлением компьютерного пиратства, затем музыкального и т.д. Традиционные методы дают положительный эффект лишь в тех странах, где имеются должная гражданская законопослушность и эффективные средства надзора. В качестве наиболее яркого примера изменения бизнес-модели можно упомянуть происходящее в музыкальной сфере. Во-первых, это постепенный отказ от издания альбомов и переход к распространению синглов с микрооплатой через Internet, во-вторых, микрооплата за мелодии к телефонам. В обоих случаях авторы получают намного больше, чем при традиционных способах распространения музыкальной продукции, и исчезает почва для массового пиратства. То же должно произойти в литературе и, возможно, в других видах искусства (например, живописи), если когда-нибудь получат массовое распространение высококачественные принтеры.
Модель Open Source Culture позволяет установить новый бесконфликтный баланс между свободой распространения и правом на интеллектуальную собственность. Идея культуры со свободным доступом к источникам развивается параллельно с идеей свободной культуры, но первая отличается тем, что сохраняет авторское право в более естественной для новых технологий форме. Сетевые и компьютерные технологии постоянно снижают стоимость передачи, хранения и доступа к цифровым оригиналам, делают их более доступными для массовой аудитории.
Open Source Culture не заменяет свободную культуру, которая была и остается удивительной возможностью для коллаборативной деятельности. Одним из наиболее интересных и показательных образцов креативности свободной культуры следует признать онлайновую энциклопедию Wikipedia. Всего за четыре года ее существования количество статей в англоязычной версии достигло почти полумиллиона. Публикующая эту энциклопедию бесприбыльная организация Wikimedia Foundation зарегистрировала 187 независимых языковых изданий. (Существует и русскоязычная версия Wikipedia, в которой опубликовано более 13 тыс. статьей, но она уступает по размеру даже украинской и румынской, не говоря уже о версиях на более распространенных языках; стоит задуматься над этим феноменом.)
Название Wikipedia можно перевести как «быстропедия», поскольку wiki (вопреки правилам чтения произносится как «вики») на языке жителей Гавайских островов маори означает «быстро». Программное обеспечение типа wiki относится к так называемому коллаборативному программному обеспечению, предназначенному для коллективной работы с Web-документами. Предшественником Wikipedia был проект Nupedia. В этих начинаниях реализовалась попытка на современном уровне реализовать энциклопедические замыслы древних. В качестве античных первоисточников создатели Wikipedia называют Александрийскую библиотеку и библиотеку в Пергамоне, из более близких — труд Дени Дидро и великих энциклопедистов XVIII века, а из совсем близких — Memex Ванневара Буша и проект Xanadu Теда Нельсона.
Основной принцип Wikipedia — open editing, а это означает, что контент энциклопедии создается самими читателями. Лицензионная политика GNU Free Documentation License (GFDL) предполагает, что любой посетитель может редактировать любую страницу, включая титульную. Статистика показывает, что основная масса редактирования выполняется примерно 2,5% пользователей; большая часть из них представляется сообществу, но 18% редакторов остаются анонимными. Открытость редактирования оборачивается как достоинствами, так и недостатками. В отличие от академических энциклопедий, в Wikipedia статьи различаются по качеству, предпочтения пользователей могут приводить к деформации контента, издание не полностью защищено от вандализма. Эти и другие сложности постепенно преодолеваются благодаря эволюционному механизму саморазвития.
Структура FLOSS
Состояние дел в области терминологии и лицензирования Open Source довольно запутано. Достаточно сказать, что общее число типов лицензий на свободно распространяемые программы превышает полсотни (см. opensource.org). Кроме того, в категорию свободно распространяемого программного обеспечения попадают продукты, не являющиеся ни свободными, ни открытыми: хотя они могут быть свободно загружены, но имеют собственника (proprietary).
В наиболее общем виде свободно распространяемое программное обеспечение делится на две большие группы — freeware и free software. При очевидном родстве названий это принципиально разные вещи. Термин freeware когда-то был торговой маркой схемы распространения коммуникационной программы PC-Talk, но в дальнейшем его заменил термин shareware. Обычно так называют закрытую условно бесплатную программу, распространяемую без исходного текста. Крупные производители используют продукты типа shareware для «раскрутки» основного программного продукта, и в таком случае продукт называют loss leader, то есть «лидером, продающимся в убыток». Наравне с другими возможны и такие варианты freeware:
- adware — продукт включает в себя рекламные вставки;
- donationware — автор предполагает, что пользователи в знак благодарности отправят ему небольшую денежную сумму;
- postcardware — автор не просит ничего, кроме подтверждения факта использования;
- crippleware — бесплатная версия содержит минимум функциональности, а для получения полной версии следует произвести оплату.
Подчеркнем: freeware не относится к категории открытого программного обеспечения. Открытое программное обеспечение делится на Copyleft, то есть подчиняющееся лицензии GPL и аналогичным лицензиям, и Open Source (или non-Copyleft). Основные различия между типами программного обеспечения указаны в таблице.
Пожалуй, принципиальное различие программного обеспечения Free Software (Copyleft) и Open Source (non-Copylef) хорошо передается словом viral, которое буквально переводится как «нечто, зараженное вирусом». Правда, в данном случае оно не имеет отношения к компьютерной вирусологии. Своеобразным «вирусом» (а точнее — видовым признаком) является обязательность подчинения программного обеспечения лицензии типа GNU, то есть сохранение статуса Copyleft.
Допустимость нарушения этого принципа в программном обеспечении Open Source иногда расценивают как маркетинговый прием, позволяющий сделать Free Software более привлекательным для бизнеса. Те лицензии, которые регламентируют действия с Open Source, оставляют компаниям возможность получать прибыль от работы с ним, оставляя коды свободными. Основная возможность для бизнеса кроется в обслуживании и распространении программных пакетов открытых кодов, разработанных хакерским (в «правильном» смысле этого слова) сообществом. Необходимость в дополнительном сервисе чаще всего возникает из-за того, что программы разрабатываются в расчете на то же самое хакерское сообщество и не всегда удобны для конечного пользователя. Типичный пример такого бизнеса — поддержка средств криптографии Pretty Good Privacy. Другой способ ведения бизнеса состоит в создании открытой платформы, на которой можно строить коммерческие приложения; самый яркий пример тому — операционная система Linux.
Более подробно история freeware и shareware описана в статье Руслана Богатырева «Тайна Золотых Ворот» («Мир ПК», № 3, 2005).
Личная мотивация и экономика дарения
При обсуждении вопросов, связанных с Open Source, обычно упускается один существенный момент. Что, собственно, является стимулом для каждого из программистов, отдающих свои силы и труд при разработке свободных кодов и не получающих взамен чего-то материального взамен? Что является мотивом к участию в создании сложных программных систем? В некоторых случаях, когда разработки с открытыми кодами спонсируются крупными компаниями, такие вопросы теряют актуальность, но все же секрет этого своеобразного альтруизма вызывает любопытство.
Ответ попытался дать все тот же Эрик Рэймонд в статье The Hacker Milieu as Gift Culture (что можно перевести как «Хакерская идея как культура дарения»). Рэймонд выделяет три типа общественных организаций: административно-командная система; система, построенная на дарении; система, основанная на обмене ценностями. Естественно, границы между ними размыты. За последние тысячелетия последняя система стала самой распространенной, приняв естественную форму товарно-денежных отношений. Но в течение гораздо более длительного периода человечество не знало денег, и тогда действовали первые две системы.
Господство той или иной из систем определялось степенью материальной обеспеченности. Если ресурсов было недостаточно, устанавливалась командная система, в противном случае — система, основанная на дарении. Чаще всего ресурсов не хватало, поэтому примеров использования командной системы гораздо больше, однако как эволюционный механизм она менее эффективна. Командная система тормозит деятельность и инициативу большинства, однако за счет узурпации полномочий дает возможность выживания и развития меньшинству. С точки зрения эволюционного развития общества в определенные периоды она может быть целесообразной. Классический пример — античный период развития человечества, когда элита создавала культурные ценности.
В тех случаях, когда ресурсов достаточно, узурпация не является эффективным способом достижения престижного положения, и вступает в действие механизм дарения. Этим методом повышения собственного социального статуса пользуются, в частности, богатые меценаты. Примерно то же самое наблюдается и в программистском сообществе. Здесь дарение тоже позволяет достичь более высокого социального статуса. Самый яркий пример тому — опыт Линуса Торвальдса, который на основе Minix и Unix создал собственную операционную систему и подарил ее человечеству.
Из рассуждений Рэймонда следует один закономерный вывод: хакерство возможно в тех случаях, когда программист освобожден от мыслей об обеспечении себя хлебом насущным. Не случайно хакерство возникло в довольно обеспеченной среде студентов престижных американских университетов. Основные «действующие лица» имели достаточно средств для свободного творчества и не претендовали на большие доходы. Говоря о радости хакерства (The Joy of Hacking), Рэймонд не ограничивает стимулы к свободному программистскому труду исключительно соображениями престижа. Разумеется, актуально и творческое удовлетворение, а кроме того, престиж может быть реализован. Во-первых, признание позволяет занять лидирующее положение в коллаборативном творческом процессе. Во-вторых, высокий статус в хакерском сообществе дает возможность со временем занять соответствующее положение и в традиционной экономической системе.
Организация разработки в стиле FLOSS
Образное название «Собор и базар» в большей мере характеризует добровольный способ формирования хакерского сообщества, мотивацию участников, но не складывающуюся в итоге инфраструктуру разработки. Результатом и «базарной», и «кафедральной» процедур формирования коллектива с абсолютной неизбежностью должна стать некая дееспособная организационная структура. В этом две противоположности сходятся, и очевидно, что при исключительно стихийном взаимодействии какая-либо реальная работа не может быть выполнена. Поэтому коллаборативная деятельность предполагает определенную, пусть добровольную, но все же иерархию участников проекта, неизбежность выделения лидеров по объективным показателям.
Первым эту «соборную особенность базара» отметил Алан Кокс, один из руководителей разработки ОС Linux для платформы х86. Это произошло в 1998 году, вскоре после публикации статьи Рэймонда. Кокс ввел еще одно понятие — Town Council, имея в виду неорганизованное площадное собрание, что-то вроде вече. Неорганизованная толпа не может быть продуктивной, в ней неизбежно выделяются лидеры, управляющие или манипулирующие массой. То же самое происходит в коллективах разработчиков — антропологические закономерности толпы разработчиков и толпы митингующих не сильно различаются.
К тому же Кокс показал, что желающие принять участие в проекте обладают разным потенциалом. Всех участников проекта можно разделить на три основные категории: настоящие программисты, претенденты на статус настоящих программистов, не являющиеся таковыми, и основная масса. Продуктивность настоящего программиста может в десятки раз превосходить производительность человека из толпы, но из этого вовсе не следует, что проект удастся осуществить лишь силами элиты. Каждый из участников может быть полезен и вреден, все они играют разные роли, которые важно распределить.
Особую опасность представляют мимикрирующие под настоящих программистов. Эта неизбежная категория участников любого проекта «бегает с пустым ведром вокруг пожара», не привнося чего-либо позитивного. Те, кто участвовали в «соборных» разработках, хорошо знакомы с такими специалистами, очень активными участниками конференций, семинаров и совещаний.
В то же время Кокс обращает внимание на необходимость привлечения к работе тех, кто обладает скромным потенциалом, но может быть чрезвычайно полезен на уровне тестирования, подготовки документации или ее перевода на иностранные языки. Эти специалисты образуют нижние этажи пирамиды, а элита, настоящие творцы-программисты — верхние. В целом здание получается достаточно устойчивым.
Рис. 1. Организационная структура разработки |
Итогом демократического процесса должна стать централизованная структура (например, подобная изображенной на рис. 1), которая почти не отличается от «соборной» структуры.
FLOSS и управление знаниями
Чаще всего интерес крупных компаний к FLOSS объясняют желанием более эффективно использовать созданные коды, обеспечить их повторное использование. Это корректное, но лишь частичное объяснение. Скорее стоит говорить о глобальном изменении отношения к программному обеспечению: оно все меньше рассматривается как продукт, предмет продажи и все больше — как способ аккумуляции знаний. Знания существенно дольше сохраняют актуальность, чем продукты, а их неоднократное использование является вполне естественным. Это чрезвычайно интересный процесс, но пока он находится в самой начальной стадии.
Культура и экономика дарения
Понятия «культура дарения» (Gift Culture) и «экономика дарения» (Gift Economics) имеют разный социальный смысл. Экономика дарения — это экономическая система, в рамках которой услуги и товары передаются, а не продаются. Она была распространена повсеместно в древнейшие времена и сохранилась сегодня в некоторых племенах, ведущих первобытный образ жизни. Отголоски экономики дарения в современной жизни выражаются словами «взятка», «блат», «коррупция» и т.д.
Культура дарения является выражением способа установления социальной иерархии в сообществе. Самый распространенный пример — обряд «потлач», исполняемый американскими индейцами нутка. Его смысл состоит в том, что чем больше человек дарит, тем выше он поднимается по социальной лестнице. Этнографическая сторона культуры дарения анализируется в классической работе Марселя Мосса «Эссе о даре» (consumers.narod.ru/book/moss.html).
В качестве примера культуры дарения можно упомянуть деятельность традиционных научных сообществ. Публикуя свою работу или выступая на конференции, ученый отдает знания другим в предположении, что его будут цитировать. Так образуется индекс цитирования работ и устанавливается социальный статус ученого. Результатами своей деятельности ученый пополняет общий пул знаний, повышая собственный престиж.
Социология FLOSS
Социологические обследования хакерских сообществ показывают, что 46% разработчиков свободного программного обеспечения не предполагают от этого ни прямой, ни косвенной материальной выгоды. Деньги за разработку получают 16%, за администрирование — 18%, а за поддержку — 12% респондентов. Еще 26% опрошенных сообщили, что получали материальные выгоды косвенным образом, а 18% — что участие в таких проектах помогло им получить лучшую работу. Подавляющее большинство, 93%, заявили, что участие в разработках позволило им повысить свой уровень знаний, причем 48% отметили это как наиважнейший фактор.