Авторское лево: прагматичная принципиальность
Ричард СтолменКаждое решение, которое принимает личность, проистекает из ценностей и целей этой личности. У людей может быть много разных целей и ценностей; слава, прибыль, любовь, выживание, развлечение и свобода — вот только некоторые из целей, которые могут быть у добропорядочного человека. Когда цель является делом принципа, мы называем это принципиальностью.
Моя работа над свободными программами мотивируется идеалистической целью — расширением свободы и сотрудничества. Я хочу способствовать распространению свободных программ, заменяя несвободные программы, которые запрещают сотрудничество, и таким образом улучшать наше общество.
В этом состоит основная причина, по которой Стандартная общественная лицензия GNU написана так, как она написана — как реализация авторского лева. Все исходные тексты, добавленные к программе под GPL, должны быть свободными программами, даже если их размещают в отдельном файле. Я делаю так, что мои тексты доступны для применения в свободных программах, но не для применения в несвободных программах, чтобы поощрять других людей, которые пишут программы, тоже делать их свободными. Я понимаю, что поскольку разработчики несвободных программ применяют авторское право, чтобы не давать нам обмениваться, то мы, сотрудничая с другими, можем применять авторское право, чтобы дать им преимущество как людям, сотрудничающим с нами: они могут пользоваться нашими исходными текстами.
Не всякий, кто пользуется GNU GPL, преследует эту цель. Много лет назад одного моего знакомого попросили перевыпустить программу с авторским левом на условиях без авторского лева, и он ответил примерно так:
“Иногда я работаю над свободными программами, а иногда я работаю над несвободными программами — но когда я работаю над несвободными программами, я ожидаю, что мне заплатят”.
У него было желание обмениваться своей работой с сообществом, которое обменивается программами, но не видел причин отдавать ее предприятию, выпускающему продукцию, которая находилась бы за пределами нашего сообщества. Его цель была отлична от моей, но он решил, что GNU GPL полезна и для его цели.
Если вы хотите в этом мире чего-нибудь достигнуть, принципиальности не достаточно — вам нужно выбрать метод, который подходит для достижения цели. Другими словами, вам нужно быть “прагматичным”. Прагматична ли GPL? Обратимся к результатам.
Рассмотрим C++ GNU. Почему у нас есть свободный компилятор C++? Только потому, что в GNU GPL было сказано, что он должен быть свободен. C++ GNU был разработан промышленным объединением, MCC, взявшим за основу компилятор C GNU. MCC, как правило, делает свою работу как можно более несвободной. Но они сделали предобработчик C++ свободной программой, потому что в GNU GPL было сказано, что они его могут выпускать только так. В предобработчик C++ входило много новых файлов, но поскольку они предназначались для компоновки с GCC, то GPL на них распространялась. Польза для нашего сообщества очевидна.
Рассмотрим Objective C GNU. Первоначально в NeXT хотели сделать этот предобработчик несвободным; они предлагали выпускать его как файлы .o и давать пользователям компоновать их с остальным GCC, думая, что таким способом можно обойти требования GPL. Но наш юрист сказал, что это не снимет требований, что это не разрешено. Так что они сделали предобработчик Objective C свободной программой.
Этим примерам уже несколько лет, но GNU GPL продолжает приносить нам новые свободные программы.
Многие библиотеки GNU распространяются по Меньшей стандартной общественной лицензии GNU, но не все. Одной из библиотек GNU, на которые распространяется обыкновенная GNU GPL, является GNU Readline, которая реализует редактирование командной строки. Однажды я узнал о несвободной программе, которая была спроектирована для использования с Readline, и сказал разработчику, что это не разрешено. Он мог бы удалить редактирование командной строки из программы, но на самом деле он в конце концов перевыпустил ее под GPL. Теперь это свободная программа.
Программисты, пишущие улучшения GCC (или Emacs, или Bash, или Linux, или любой программы под GPL), часто работают на компании или университеты. Когда программист хочет вернуть свои улучшения в сообщество и увидеть свои тексты в следующем выпуске, шеф может сказать: “Постой-ка — твои тексты принадлежат нам! Мы не хотим обмениваться ими; мы решили обратить твою улучшенную версию в несвободный программный продукт”.
И здесь приходит на помощь GNU GPL. Программист показывает шефу, что этот несвободный программный продукт был бы нарушением авторских прав, и шеф осознает, что у него есть только два выбора: выпустить новые программы как свободные или не выпускать их вообще. Почти всегда он позволяет программисту поступить так, как тот все время намеревался, и эти программы включаются в очередной выпуск.
GNU GPL — не “добрый дядя”. Она говорит нет кое-чему из того, что люди иногда хотят сделать. Есть пользователи, которые говорят, что это плохо — что GPL “исключает” некоторых разработчиков несвободных программ, которых “нужно ввести в сообщество свободного программного обеспечения”.
Но мы не исключаем их из нашего сообщества; это они решают не вступать. Их решение сделать программы несвободными — это решение оставаться вне нашего сообщества. Находиться в нашем сообществе значит присоединяться к нам в сотрудничестве; мы не можем “ввести их в наше сообщество”, если они не желают присоединяться.
Что мы можем делать — это предлагать им стимул для присоединения. GNU GPL составлена так, чтобы создавать стимул с помощью наших существующих программ: “Если вы сделаете свои программы свободными, вы можете пользоваться этим исходным текстом”. Конечно, это не завоюет их всех, но время от времени это побеждает.
Разработка несвободных программ не является вкладом в наше сообщество, но их разработчики часто просят у нас подачек. Пользователи свободных программ могут предложить вознаграждение для самолюбия разработчиков свободных программ — признание и благодарность — но может быть очень заманчиво, когда предприятие говорит вам: “Только дайте нам обратить ваш пакет в несвободную программу, и вашей программой будут пользоваться многие тысячи людей!” Соблазн может быть велик, но в долгосрочной перспективе нам всем будет лучше, если мы будем с ним бороться.
Соблазн и давление труднее распознать, когда они вводятся косвенно, через организации, занимающиеся свободными программами, которые взяли за правило потворствовать несвободным программам. Наглядный пример — Консорциум X (и его наследник, Open Group): финансируемые компаниями, которые производили несвободные программы, они более десяти лет стремились убедить программистов не пользоваться авторским левом. Когда в Open Group попытались сделать X11R6.4 несвободными программами, те из нас, кто перед тем сопротивлялся этому давлению, были рады, что мы это делали.
В сентябре 1998 года, через несколько месяцев после того, как система X11R6.4 была выпущена под несвободными условиями распространения, Open Group отменила свое решение и перевыпустила под той же лицензией свободных программ без авторского лева, которая применялась для X11R6.3. Спасибо, Open Group — но эта последующая отмена не опровергает выводов, которые мы делаем из того факта, что добавление ограничений было возможно.
Говоря прагматично, размышления о более долгосрочных целях усиливает вашу волю к противостоянию этому давлению. Если вы сосредоточите свои мысли на свободе и сообществе, которое вы можете построить, оставаясь непреклонным, вы найдете в себе силы для этого. “Отстаивайте что-нибудь, или вы останетесь ни с чем”.
А если циники высмеивают свободу, высмеивают сообщество... если “твердолобые реалисты” говорят, что нет никаких идеалов, кроме прибыли... просто не обращайте на них внимания и все равно пользуйтесь авторским левом.
Этот очерк публикуется в сборнике Свободные программы, свободное общество: избранные очерки Ричарда М. Столмена.