Десять лет концепции открытого ПО

Десять лет назад произошло знаковое событие для всего софтверного рынка и для движения за свободное ПО, в частности: 9 февраля 1998 года был опубликован программный документ "Open Source Definition" (perens.com/Articles/OSD.html), в котором формулировалось определение открытого ПО.

Конечно, понятие открытого ПО появилось гораздо раньше, чем в 1998 году. Ведь с первых дней существования программирования как вида деятельности программы были отрытыми и бесплатными, а коммерческий рынок ПО возник уже потом. Легендарный Ричард Столлман пропагандировал концепцию свободного софта с начала 80-х гг. Однако заслуга Брюса Перенса состоит в том, что он открыл концепцию Open Source для бизнеса, и последствия этого были очень значительными.

Подводя итоги этих десяти лет (perens.com/works/articles/State8Feb2008), Брюс Перенс с гордостью отмечает, что популярность открытого и свободного ПО превзошла все ожидания. Сейчас оно стало мейнстримом и реально занимает лидерские позиции по многим тематическим категориям, особенно на бизнес-серверах и во встроенных системах. К сожалению, добиться такого же успеха на десктопах пока не удаётся, если не учитывать тот факт, что на открытом софте основана большая часть Apple MacOS и критические элементы Microsoft Windows.

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

Мы видим также, что на конференциях по открытому ПО появляются представители государственных органов, где они всё чаще объявляют о различных правительственных программах, касающихся Open Source. Например, недавно было объявлено об использовании Linux в большом американском оборонном проекте с бюджетом $200 млрд. Никто уже не думает извиняться за это перед разработчиками коммерческого софта.

Большой проблемой до сих пор остаётся Microsoft как бастион старых взглядов на программное обеспечение и как представитель традиционной школы грязной корпоративной борьбы. Их текущая стратегия, похоже, заключается в замазывании нас деньгами, недавно они заключили патентные соглашения с некоторыми разработчиками дистрибутивов Linux. Эти соглашения противоречат духу свободных лицензий и, вероятно, задумка была такая, что многие независимые программисты теперь откажутся от участия в этих проектах.

Многие видят угрозу в желании Microsoft купить Yahoo. Но на самом деле реализация стратегии "купи неудачника" может подкосить финансовое благосостояние Microsoft и высосать у неё немало денег.

Анатолий АЛИЗАР


Определение Open Source

Исходная версия этого определения сформулирована Брюсом Перенсом (Bruce Perens) в 1997 г., и после ряда дополнений и изменений документ был опубликован на сайте www.opensource.org. Мы используем официальный перевод определения с требуемыми уточнениями и дополнениями, включая разъяснения и обоснования частей определения, приводимые в оригинальном документе.

Концепция Open Source не означает всего лишь возможности доступа к исходному коду. Условия распространения программного обеспечения с открытыми кодами должны отвечать следующим критериям.


1. Свободное повторное распространение

Лицензия не должна ограничивать право какого-либо субъекта на продажу или бесплатное распространение программного обеспечения как компонента совокупного набора программ, полученных из разных источников. Лицензия не должна требовать отчислений или других выплат за подобное распространение.

Логическое обоснование: Обязательность требования свободного распространения устраняет соблазн кратковременного дохода за счет продаж в ущерб многим долговременным выгодам. При отсутствии этого требования на разработчиков программного обеспечения с открытыми кодами оказывалось бы давление, приводящее к снижению качества их работы.


2. Исходный код

Программа с открытыми кодами должна включать исходный код, и должно допускаться ее распространение как в виде исходного кода, так и в откомпилированном виде. В тех случаях, когда какой-либо вид продукта распространяется без исходного кода, должны существовать широко оглашенные способы получения исходного кода, стоимость которых не превышает обоснованных расходов на воспроизведение; предпочтительным способом является бесплатное скачивание из Internet. Исходный код должен быть предпочтительной формой, в которой программисты могли бы модифицировать программу. Преднамеренное запутывание исходного кода не допускается. Распространение промежуточных форм представления программ, таких, как результаты вывода препроцессора или транслятора, не допускается.

Логическое обоснование: Требуется доступ к незапутанному исходному коду, потому что невозможно совершенствовать программы без их модификации. Поскольку цель подхода открытых кодов состоит в облегчении процесса совершенствования программ, требуется, чтобы модификация кода производилась простым образом.


3. Производные продукты

Лицензия должна допускать создание модифицированных и производных продуктов и разрешать их распространение на таких же условиях, что и оригинального программного продукта.

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


4. Сохранность авторского исходного кода

Лицензия может ограничивать распространение исходного кода в модифицированной форме, только если лицензия допускает распространение вместе с исходным кодом "файлов-патчей" для модификации программы во время создания исполняемой системы. Лицензия должна явным образом разрешать распространение программного обеспечения, созданного на основе модифицированного исходного кода. Лицензия может требовать, чтобы названия или номера версий производных продуктов отличались от тех, которые имелись у исходного программного обеспечения.

Логическое обоснование: Совершенствование кода - это хорошее дело, но пользователи имеют право знать, кто отвечает за используемое ими программное обеспечение. Разработчики и люди, поддерживающие код, имеют право знать, за поддержку чего они отвечают, и защищать свою репутацию. Соответственно, лицензия программного обеспечения с открытыми кодами должна гарантировать простую доступность исходного кода, но может требовать его распространения в виде изначального исходного кода плюс патчи. При этом можно производить "неофициальные" изменения, но они легко отличимы от базового исходного кода.


5. Отсутствие пристрастий по отношению к отдельным лицам или группам лиц

В лицензии не должны проявляться пристрастия по отношению к каким-либо лицам или группам лиц.

Логическое обоснование: Для получения максимальной пользы от процесса разработки программного обеспечения с открытыми кодами у как можно большего числа людей и групп должны иметься одинаковые права на свой вклад в open source. Поэтому мы запрещаем наличие в любой лицензии на программное обеспечение с открытыми кодами условий, не допускающих кого бы то ни было к участию в этом процессе. В некоторых странах, включая США, имеются экспортные ограничения на некоторые типы программного обеспечения. В лицензиях, соответствующих данному определению концепции открытых кодов, могут содержаться предупреждения о применимых ограничениях и напоминания об обязанности соблюдения закона; однако в них самих не должны содержаться подобные ограничения.


6. Отсутствие пристрастий к областям применения и деятельности

Лицензия не должна накладывать ограничения на применение программы какой-либо области применения. Например, лицензия не может ограничивать использование в области бизнеса или в области генетических исследований.

Логическое обоснование: Основной смысл этого пункта состоит в запрете лицензионных ловушек, которые препятствуют коммерческому использованию программного обеспечения с открытыми кодами. Мы хотим, чтобы коммерческие пользователи присоединялись к нашему сообществу, не чувствовали себя исключенными из него.


7. Распространение лицензии

Права, приписанные данной программе, должны распространяться на всех ее получателей без потребности оформления ими какой-либо дополнительной лицензии.

Логическое обоснование: Смысл этого пункта состоит в запрете закрытия программного обеспечения косвенными способами, такими, как требование соглашения о неразглашении.


8. Лицензия не должна специализироваться для каких-либо продуктов

Права, приписываемые данной программе, не должны зависеть от того, является ли эта программа частью какого-либо специального набора программ. Если программа извлекается из этого набора и используется или распространяется в соответствии с условиями ее лицензии, то все субъекты, которым распространяется данная программа, должны иметь такие же права, как и те, которые предоставляются вместе с исходным набором программ.

Логическое обоснование: Этот пункт предотвращает еще один класс лицензионных ловушек.


9. Лицензия не должна ограничивать другое программное обеспечение

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

Логическое обоснование: Дистрибьюторы программного обеспечения с открытыми кодами имеют право собственного выбора по отношению к своему собственному программному обеспечению. Да, GPL удовлетворяет этому требованию. Программное обеспечение, скомпонованное с использованием GPL-библиотек, наследует GPL только в том случае, когда образует отдельный продукт, но это не относится к какому-либо другому программному обеспечению, вместе с которым этот продукт распространяется.


10. Лицензия должна быть нейтральной по отношению к технологии

Ни одно из положений лицензии не должно основываться на какой-либо индивидуальной технологии или на стиле интерфейса.

Логическое обоснование: Этот пункт в особенности затрагивает лицензии, в которых требуются явные действия для установления контакта между лицензиаром и лицензиатом. Методы, в которых принятие лицензии подтверждается нажатием "согласительной" кнопки (click-wrap), могут конфликтовать с такими важными методами распространения программного обеспечения, как скачивание по FTP, антологии CD-ROM и зеркалирование web-сайтов; такие методы могут также затруднять повторное использование кода. Лицензии, соответствующие данному определению, должны допускать возможность того, что (a) распределение программного обеспечения может производиться через каналы, отличные от Web, не поддерживающие методы click-wrap, и (b) защищенный лицензией код (или его повторно используемая часть) может выполняться в среде без графического пользовательского интерфейса, в которой невозможна поддержка диалоговых окон.

Брюс ПЕРЕНС,
перевод Сергея КУЗНЕЦОВА

Версия для печатиВерсия для печати

Номер: 

06 за 2008 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!