著佐權:務實的理想主義
作者:Richard Stallman一個人做的每個決定都源於這個人的價值觀和目標。人們可以有許多不同的目標和價值觀;名譽、利潤、愛、生存、樂趣和自由,只是一些好人可能擁有的目標。當目標是一個原則問題時,我們稱之為理想主義。
我從事自由軟體工作是受到一個理想主義目標的驅動:傳播自由與合作。我希望鼓勵自由軟體的傳播,取代禁止合作的專有軟體,從而使我們的社會變得更好。
這就是 GNU 通用公共授權條款 (GPL) 如此撰寫的基本原因——作為一個著佐權。添加到 GPL 涵蓋程式的所有程式碼都必須是自由軟體,即使它被放在一個單獨的檔案中。我提供我的程式碼供自由軟體使用,而不是供專有軟體使用,以便鼓勵其他編寫軟體的人也使其成為自由軟體。我認為,既然專有軟體開發商使用著作權來阻止我們分享,我們合作者就可以使用著作權來給予其他合作者他們自己的優勢:他們可以使用我們的程式碼。
並非每個使用 GNU GPL 的人都抱持這個目標。許多年前,我的一個朋友被要求在非著佐權條款下重新發布一個著佐權程式,他的回應大致如下:
「有時我從事自由軟體工作,有時我從事專有軟體工作——但當我從事專有軟體工作時,我期望獲得報酬。」
他願意與一個分享軟體的社群分享他的作品,但不認為有理由向一家製造產品的企業施捨,這些產品對我們的社群來說是禁止的。他的目標與我的不同,但他認為 GNU GPL 對他的目標也很有用。
如果你想在世界上完成一些事情,理想主義是不夠的——你需要選擇一種有效實現目標的方法。換句話說,你需要「務實」。GPL 務實嗎?讓我們看看它的成果。
考慮 GNU C++。我們為什麼會有一個自由的 C++ 編譯器?僅僅因為 GNU GPL 說它必須是自由的。GNU C++ 是由一個產業聯盟 MCC 從 GNU C 編譯器開始開發的。MCC 通常盡可能使其工作成為專有的。但他們使 C++ 前端成為自由軟體,因為 GNU GPL 說這是他們發布它的唯一方法。C++ 前端包含許多新檔案,但由於它們旨在與 GCC 連結,因此 GPL 確實適用於它們。對我們社群的好處是顯而易見的。
考慮 GNU Objective C。NeXT 最初希望使這個前端成為專有的;他們提議以 .o 檔案的形式發布它,並讓使用者將它們與 GCC 的其餘部分連結,認為這可能是一種繞過 GPL 要求的方法。但我們的律師說這不會規避要求,這是不允許的。因此,他們使 Objective C 前端成為自由軟體。
這些例子發生在多年前,但 GNU GPL 繼續為我們帶來更多自由軟體。
許多 GNU 函式庫都受到 GNU 寬鬆通用公共授權條款 (LGPL) 的保護,但並非全部。其中一個受普通 GNU GPL 保護的 GNU 函式庫是 Readline,它實現了命令列編輯。我曾經發現一個非自由程式被設計為使用 Readline,並告訴開發人員這是被禁止的。他本可以從程式中刪除命令列編輯,但他實際上所做的是在 GPL 下重新發布它。現在它是自由軟體。
編寫 GCC(或 Emacs、或 Bash、或 Linux 或任何 GPL 涵蓋程式)改進程式的程式設計師通常受僱於公司或大學。當程式設計師想要將他的改進程式回饋給社群,並在下一個版本中看到他的程式碼時,老闆可能會說:「等一下——你的程式碼屬於我們!我們不想分享它;我們已決定將你的改進版本變成專有軟體產品。」
在這裡,GNU GPL 挺身而出。程式設計師向老闆展示,這個專有軟體產品將構成著作權侵權,老闆意識到他只有兩個選擇:以自由軟體的形式發布新程式碼,或者完全不發布。幾乎總是,他讓程式設計師按照他一直以來的意願去做,程式碼進入了下一個版本。
GNU GPL 不是好好先生。它對人們有時想做的一些事情說不。有些使用者說這是一件壞事——GPL「排除了」一些「需要被帶入自由軟體社群」的專有軟體開發商。
但我們並沒有將他們排除在我們的社群之外;他們選擇不加入。他們決定將軟體設為專有軟體,就是決定留在我們的社群之外。身處我們的社群意味著加入與我們的合作;如果他們不想加入,我們就無法「將他們帶入我們的社群」。
我們可以做的是為他們加入提供誘因。GNU GPL 旨在從我們現有的軟體中提供誘因:「如果你願意讓你的軟體成為自由軟體,你可以使用這段程式碼。」當然,它不會贏得所有人的青睞,但有時會奏效。
專有軟體開發不會為我們的社群做出貢獻,但其開發商經常想要我們的施捨。自由軟體使用者可以為自由軟體開發商提供自我滿足感——認可和感激——但是當一家企業告訴你:「只要讓我們把你的套件放在我們的專有程式中,你的程式就會被成千上萬的人使用!」時,這種誘惑可能非常強大,但從長遠來看,如果我們抵制它,對我們所有人都有好處。
當誘惑和壓力間接來自於那些採取迎合專有軟體政策的自由軟體組織時,它們更難被識別。X 聯盟(及其繼承者開放群組)提供了一個例子:由製造專有軟體的公司資助,他們十年來一直努力說服程式設計師不要使用著佐權。當開放群組試圖將 X11R6.4 變成非自由軟體 時,我們這些抵制過這種壓力的人很高興我們做到了。
1998 年 9 月,在 X11R6.4 以非自由發行條款發布幾個月後,開放群組推翻了其決定,並在與 X11R6.3 相同的非著佐權自由軟體授權條款下重新發布了它。謝謝你,開放群組——但隨後的逆轉並不能使我們從增加限制成為可能這一事實中得出的結論失效。
務實地說,思考更長遠的目標將增強你抵制這種壓力的意志。如果你將注意力集中在你透過保持堅定可以建立的自由和社群上,你就會找到做到這一點的力量。「為某事挺身而出,否則你將為任何事而倒下。」
如果犬儒主義者嘲笑自由,嘲笑社群……如果「冷酷的現實主義者」說利潤是唯一的理想……那就忽略他們,並始終如一地使用著佐權。