Еще раз про свободу и халяву

Алексей Федорчук
6 сентября 2005 г

Поводом для этой заметки послужила статья Виктора Вислобокова, поднимающая тему свободного и проприетарного (по-русски — частнособственнического) программного обеспечения. Казалось бы, тема эта столько раз обсуждалась как в Сети, так и на бумаге, что в ней давно пора бы уже поставить все точки на i. Тем более, что документы основоположников движения за свободный софт не оставляют оснований для двусмысленного их толкования.

И, тем не менее, такое толкование, когда тёплое смешивается с мягким, встречается сплошь и рядом. И вследствие этого статья Виктора представляется чрезвычайно своевременной и актуальной.

Однако начать я хотел бы с воспоминаний о совсем другой статье, достаточно древней в масштабах компьютерной эры. Статье Евгения Рыбникова Дюжина ножей в спину Open Source. Потому что она и являет собой квинтэссенцию мифов, легенд и предубеждений, сформировавшихся вокруг открытого и свободного программного обеспечения. И уж если такие предубеждения бытуют в среде IT-профессионалов — а смею вас уверить, тот, кто скрывается под псевдонимом Евгения Рыбникова, действительно высокий профессионал в этой области… Так вот, если такие предубеждения бытуют в среде IT-профессионалов, то что же говорить, о людях, по роду своей основной деятельности лишь вынужденных использовать компьютеры? И потому боюсь, что к теме открытого и свободного программного обеспечения придется обращаться еще не раз.

А теперь — к статье Виктора. Для начала, во избежание недоразумений, оговорюсь: я категорически и полностью согласен со всеми ее основными положениями. И в настоящей заметке лишь хотел бы а) несколько дополнить ее, и б) высказать свое мнение по некоторым частным ее моментам, которые представляются мне спорными.

Статья начинается с классификации программного обеспечения по степени, если так можно выразиться, доступности. Выделяются такие группы:

  1. Коммерческое ПО
  2. Условно-бесплатное ПО
  3. Бесплатное ПО
  4. ПО с открытыми исходными текстами
  5. Свободное ПО

О коммерческом софте говорить особенно нечего — на Руси любой ребёнок знает, что такое Windows и Word. А также то, что покупать их по коммерческим каналам совсем не обязательно — на то есть базары и лотки. Так что — замнём для ясности.

В группу условно-бесплатного софта (т.н. shareware) объединено несколько различных на первый взгляд способов распространения программ. Однако все они объединены одним: распространяемые на этих условиях программы для полноценного использования требуется тем или иным способом оплатить. Ещё мне хотелось бы подчеркнуть здесь, что собственно shareware-программ в настоящее время практически не встречается. Как правило, под этим псевдонимом выступают либо trial-версии, либо варианты коммерческих программ с обрезанной функциональностью.

Бесплатное программное обеспечение (freeware) в полном смысле отвечает своему русскому имени — но не английскому, тут возможны разночтения, связанные со знаменитым отличием бесплатного пива от свободного слова. Общее для этой группы программ — то, что за их использование платить не нужно или не обязательно. Последняя категория (т.н. donationware) по сути своей гораздо больше соответствует shareware в его исконном значении: понравилась программа (или просто захотелось отблагодарить разработчика) — заплатил, не понравилась — не заплатил…

К сказанному здесь Виктором можно добавить одно: по моим наблюдениям, длящимся вот уже почти 15 лет, статус freeware обычно — сугубо временный. В случае успеха проекта такой бесплатный проект очень быстро становится shareware (в понимании пункта 2) или даже просто обычным коммерческим. А в случае неудачи — тихо и незаметно прекращает свое существование. Исключений из этого правила очень мало. Мне на память приходит только Arachnophilia Пауля Лютуса — типичный, кстати сказать, пример donationware.

А вот по поводу ПО с открытыми исходными текстами я бы поспорил. Тут Виктор имел ввиду лишь одну, совершенно конкретную разновидность софта с открытыми исходниками — т.н. comercial with sources. То есть — обычное проеприетарное ПО, сопровождаемое (подчас за отдельную плату) исходными текстами. Однако это — относительно редкий способ распространения программ широкого назначения. Мне в этой связи вспоминается, пожалуй, только BSD/OS, известная также как BSDi — операционная система BSD-семейства, основанная на той же кодовой базе, что и FreeBSD, но, в отличие от последней, распространяемая за деньги. А вообще comercial with sources более характерен для узкоспециализированных программ и заказных разработок.

Обычно же термину Open Source придаётся гораздо более широкое понятие, подразумевающее просто доступность (физическую и юридическую) исходных текстов некой программы. И таким образом, свободное программное обеспечение, составляющее следующую группу, оказывается лишь подмножеством ПО с открытыми исходниками. Ибо свободный софт подразумевает доступ к исходным текстам — очевидно, что без этого невозможно реализовать ни право на изучение программы, ни право на ее модификацию.

При этом открытое ПО оказывается почти столь же неразрывно связанным с ПО свободным: ведь мало радости от свободы изучения или модификации, если нет права распространять модифицированную (например, исправленную) версию. И потому на практике обычно оказывается, что все открытые, но не совсем свободные проекты либо постепенно эволюционируют в сторону полного Freesoftware, либо утрачивают свой свободный статус.

Ну собственно по главной теме статьи — свободному ПО — также есть о чем подискутировать с Виктором. Правда, большая часть моих вопросов разрешилась в личной переписке. Тем не менее, согласиться с тем, что подлинно свободное ПО — это ПО под лицензией GPL, я не могу. Ибо софт, распространяемый под лицензией BSD и родственными (MIT, X-консорциума и другими, обычно объединяемыми понятием «университетские лицензии») предоставляет пользователи все степени свободны — свободу использования, изучения и модификации, свободу распространения. Более того, в некотором отношении BSD-лицензия даже «более свободна», так как не требует непременно свободного распространения продукта, созданного с использованием BSD-лицензированного кода.

Конечно, как правильно отметил Виктор, при этом возникает некоторый риск: человек, использовавший 95% свободного кода, добавляет в него 5% функциональности и получившийся продукт распространяет как закрытый коммерческий. Однако этим можно пренебречь: ибо по условиям BSD-лицензии он может закрыть только 5% своего личного вклада, права «наложить лапу» на изначально свободные 95% он не получает. И на практике такие коллизии решаются очень просто: на базе свободного кода создается fork (порождение) со столь же свободным статусом. Примером тому — недавние баталии вокруг изменившейся лицензии XFree86: сторонники полной свободы софта просто создали полностью свободный Xorg, который успешно развивается. Хотя, убей меня Бог, я так и не понял, в чем же новая лицензия XFree86 ограничивает свободу…

А вообще, именно BSD-лицензированные продукты замечательно демонстрируют мирное сосуществование свободного и проприетарного софта. Примером чему — MacOS X, основанная на свободных микроядре Mach и системном обрамлении FreeBSD, надстроенными проприетарным графическим интерфейсом.

Подчеркну — я вовсе не утверждаю, что BSD-лицензия однозначно лучше GPL: в некоторых случаях лучше сработает одна, в иных же — другая. Более того, на мой взгляд, в 99 случаях из ста вообще не имеет значения, под какой именно из свободных лицензий распространяется тот или иной программный продукт. Тем не менее, можно представить ситуации, когда BSD-лицензия оказывается единственно приемлемым выбором. Правда, практически такие ситуации пока, вроде бы, еще не возникали (и слава Богу), поэтому рискну прибегнуть к несколько утрированной аналогии.

Как известно, принцип расщепления ядра урана — общеизвестный научный факт, находящийся, если так можно выразиться, в свободном доступе. Технологическая цепочка создания на его основе ядерной бомбы, также базируется на массе научных принципов, столь же общеизвестных. И что же, руководствуясь логикой GPL, технология создания ядерной бомбы также должна быть открытой и общедоступной?