Copyleft: прагматический идеализм

Ричард Столмен

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

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

Это основная причина, по которой Универсальная Общественная Лицензия GNU написана так, как она написана -- в виде copyleft. Весь код, добавленный к распространяемой под GPL программе, должен быть свободным, даже если он помещен в отдельный файл. Я разрешаю использовать свой код в свободном ПО, но не в закрытом, чтобы поощрить желание других программистов также сделать свои программы свободными. В моем понимании, раз уж разработчики закрытых программ используют авторские права, чтобы помешать нам делиться друг с другом, то мы, работающие совместно, можем использовать авторские права, чтобы создать для наших товарищей преимущество: они могут использовать наш код.

Не каждый, кто пользуется GNU GPL, преследует эту цель. Много лет назад моего друга попросили выпустить программу, находившуюся под copyleft, на других условиях, и он ответил примерно так:

Иногда я работаю над свободными программами, иногда над закрытыми -- но если это закрытая программа, я ожидаю, что мне заплатят.

Он охотно делился своей работой с сообществом, использующим программы совместно, но не видел никакой причины отдавать ее даром для использования в прибыльных продуктах, что закрыло бы двери перед нашим сообществом. Его цель отличалась от моей, но он решил, что GNU GPL была полезна и для его цели тоже.

Если вы хотите чего-то достигнуть в этом мире, идеализма недостаточно -- для достижения цели вам необходимо выбрать работающий метод. Иными словами, вам нужно быть ``прагматичным''. Прагматична ли GPL? Давайте поглядим на ее результаты.

Возьмем GNU C++. Почему у нас есть свободный компилятор Си++? Только потому, что в GNU GPL сказано, что он должен быть свободным. GNU C++ был разработан промышленным консорциумом, MCC, на основе компилятора GNU C. MCC обычно делает свои работы настолько закрытыми, насколько это возможно. Но они сделали интерфейс к Си++ свободной программой, поскольку в GNU GPL говорится, что это единственный способ, которым они могли выпустить его. Интерфейс к Си++ включил множество новых файлов, но раз они предназначаются для связывания с GCC, к ним применяется GPL. Выгода для нашего сообщества очевидна.

Рассмотрим GNU Objective C. Изначально NeXT хотел сделать свой интерфейс закрытым; они предлагали выпустить его в виде объектных файлов, которые пользователи связали бы с остальной частью GCC; они подумали, что так можно избежать выполнения требований GPL. Но наш адвокат сказал, что это не позволяет обойти требования, что это недопустимо. И они сделали интерфейс к Objective C свободным программным продуктом.

Эти случаи произошли несколько лет назад, но GNU GPL продолжает приносить нам все больше свободных программ.

Многие библиотеки GNU выпущены под Универсальной Общественной Лицензией GNU для библиотек, но не все. Readline -- одна из библиотек GNU, распространяемая под обычной GNU GPL, она реализует редактирование командной строки. Месяц назад я узнал о несвободной программе, спроектированной с использованием Readline, и сообщил разработчику, что это не разрешается. Он мог бы убрать из программы редактирование командной строки, но на самом деле он повторно выпустил ее уже под GPL. Теперь это свободная программа.

Программисты, пишущие расширения для GCC (или Emacs, или Bash, или Linux или любой другой программы под GPL), часто работают на компании или университеты. Когда программист хочет вернуть свои улучшения сообществу и увидеть свой код в следующем выпуске, его босс может сказать : ``Постой-ка -- твой код принадлежит нам! Мы не хотим делиться им; мы решили превратить твою улучшенную версию в закрытый программный продукт.''

Тогда на помощь приходит GNU GPL. Программист показывает боссу, что такой закрытый программный продукт был бы нарушением авторских прав, и босс понимает, что у него есть только две возможности: выпустить код как свободную программу или не выпускать вообще. Почти всегда он позволяет программисту делать то, что тот все время и намерен был сделать, и код идет в следующий выпуск.

GNU GPL -- это не мистер Славный Парень. Она говорит ``нет'' некоторым вещам, которые люди иногда хотят сделать. Некоторые пользователи говорят, что это плохо -- что ``исключает'' некоторых разработчиков закрытого программного обеспечения, которых ``нужно ввести в сообществе свободного ПО''.

Но мы никого не исключаем из нашего сообщества; это они выбирают не вступать в него. Их решение сделать программу закрытой -- это решение остаться вне нашего сообщества. Быть в нашем сообществе -- значит включиться в сотрудничество с нами; мы не можем ``ввести их в наше сообщество'', если они не хотят вступать.

Что мы можем сделать -- дать им стимул присоединиться. GNU GPL создана так, чтобы наши существующие программы привлекали программистов: ``Если вы сделаете свои программы свободными, вы можете использовать наш код''. Разумеется, это не склонит всех, но иногда действует.

Разработка закрытых программ не привносит ничего в наше сообщество, но их разработчики часто хотят что-то получить от нас. Пользователи свободного программного обеспечения могут предложить программисту удовлетворение его собственного эго -- признание и благодарность -- но может быть трудно удержаться, когда бизнес говорит вам: ``Просто позволь нам включить свой пакет в нашу закрытую программу, и твоей программой будут пользоваться тысячи!''. Искушение может быть очень сильным, но в конечном счете нам всем будет лучше, если не поддаваться ему.

Искушение и давление труднее распознать, когда они приходят косвенным путем, через организации, посвященные написанию свободных программном, но принявшие политику угодничества по отношению к закрытому программному обеспечению. X-Консорциум (и его преемница, Open Group) показывает пример: получая фонды от компаний по производству закрытого программного обеспечения, они десятилетиями старались убедить программистов не использовать copyleft. Теперь, когда Open Group сделала X11R6.4 несвободной системой, те из нас, кто сопротивлялся давлению, рады, что не поддались.

[В сентябре 1998 года, через несколько месяцев после выпуска X11R6.4 с несвободными условиями распространения, Open Group отказалась от своего решения и снова выпустила ее под той же свободной лицензией без copyleft, что применялась с X11R6.3. Спасибо, Open Group, -- но этот последовавший пересмотр не отвергает выводов, которые мы делаем из факта, что добавление ограничений было возможным.]

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

А если циники высмеивают свободу, высмеивают сообщество... если ``непробиваемые реалисты'' говорят, что прибыль -- единственный идеал... просто игнорируйте их и все равно используйте copyleft.


© 1998 Free Software Foundation
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.