English [en]   العربية [ar]   български [bg]   català [ca]   Deutsch [de]   ελληνικά [el]   español [es]   فارسی [fa]   français [fr]   hrvatski [hr]   magyar [hu]   Bahasa Indonesia [id]   italiano [it]   日本語 [ja]   한국어 [ko]   lietuvių [lt]   മലയാളം [ml]   Nederlands [nl]   polski [pl]   português do Brasil [pt-br]   română [ro]   русский [ru]   Türkçe [tr]   українська [uk]   简体中文 [zh-cn]  

会员给予自由软件基金会动力。请助力我们达成新增700会员的目标或者请在12月31日前捐款!

加入

$80,055
$450,000

这是针对英文原版页面的中文翻译。

Copyleft:实用的理想主义

Richard Stallman

一个人所做的每个决定都源自这个人的价值观和目标。人们有很多不同的价值观和目标;名誉、利益、爱情、生存、快乐和自由,这些只是常人会有的部分目标。当目标是原则性问题的时候,我们称之为理想主义。

一个理想主义的目标激励着我从事自由软件的工作:弘扬自由和合作。我要鼓励自由软件的转播,让它替代禁止合作的专属软件,从而使我们的社会变得更好。

这就是为什么GNU通用公共许可证按照—copyleft那样写的基本原因。所有为遵循GPL的程序而添加的代码都必须是自由软件,即使这些代码是单独的文件。我把我的代码给自由软件使用,而不给专属软件使用。我认为专属软件开发者使用版权来禁止我们分享,那么我们就使用版权来给予互相合作的程序员自己的优势:他们可以使用我们的代码。

并非所有使用GNU GPL的人都有这个目标。多年以前,我的一个朋友被要求按照非copyleft的条款发布遵循copyleft条款的程序,他大概这样回复:

“我有时为自由软件工作,有时为专属软件工作—但是我为专属软件工作的时候,我是要得到收入。”

他愿意在软件分享社区分享自己的工作,但是他没有找到理由把软件交给商业公司去生产对社区来说是禁区的产品。他的目标和我不同,然而他认为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的要求。但是我们的律师说这样做也不能躲开GPL的要求,因为不能这样做。因而他们让Objective C前端成为自由软件。

这些都发生在数年以前,但是GNU GPL仍然在持续不断地带来更多的自由软件。

许多GNU库是按照GNU宽通用公共许可证发布的,但不是所有的库都这样。一个按照普通GNU GPL发布的GNU库是Readline,它实现了命令行编辑。我曾经发现一个非自由软件设计为要使用Readline,我就告诉其开发者不能那样做。他可以不做命令行编辑功能,但是他实际上把软件按照GPL发布了。现在该软件是自由软件。

为GCC(或Emacs、或Bash、或Linux、或任何按照GPL发布的程序)做出改进的程序员通常由公司或大学聘用。当该程序员想把其改进回馈到社区,并出现在下一个发布中时,其雇主可能会说,“等一下—你的代码属于我!我们不想分享这些代码;我们决定让你的改进成为专属软件。”

GNU GPL在此伸出援手。该程序员可以告诉其雇主这个专属软件会是侵权软件,而雇主会意识到他只有两个选择:让新代码成为自由软件,或者不要发布。雇主几乎总是让程序员按照自己的意愿进行,代码会出现在下一个自由发布中。

GNU GPL不是好好先生。它会向人们想做的某些事说不。有用户会说这是糟糕的事—如果GPL “排除”某些专属软件的开发者“,而他们需要被带到自由软件社区来。”

但是我们并没有排除他们;是他们选择不加入。他们决定编写专属软件就是决定呆在社区外面。加入社区就意味着加入合作;我们不能“带他们进来”如果他们不想加入的话。

我们能够做的就是为他们的加入提供一个诱因。GNU GPL的设计就是针对我们已有软件的诱因:“如果你让你的软件自由,你就可以使用我们的代码。”当然,这并不能赢得所有的人,但是这有时能够赢得一些人。

专属软件的开发不为我们的社区做贡献,但是其开发者经常想伸手向我们要东西。自由软件用户会给予自由软件开发者赞赏—赏识和感谢—但是当有生意人告诉你,“只要让我们把你的软件包放到我们的专属软件里,你的程序就会被成千上万的人使用!”这可能非常有诱惑。诱惑虽然强大,但是如果我们抵抗得住,长期来看我们能变得更好。

当诱惑和压力不是直接而来,而是通过接纳了迎合专属软件政策的自由软件组织而来的时候,它们就更难被认出。X联盟(及其接替者,开放组织)就是一个例子:由制造专属软件的公司资助,他们十年来一直努力说服程序员不要使用copyleft。当开放组织试图使X11R6.4变成非自由软件时,我们抵抗住了,我们很高兴我们抵抗住了。

在1998年9月,在X11R6.4按照非自由条款发布几个月之后,开放组织推翻了其决定并重新按照和发布X11R6.3一样的非copyleft自由软件许可证发布了该版本。谢谢你,开放组织—但是这次后来的推翻并不能推翻我们的结论,就是添加限制是可能的这一事实。

务实地说,考虑长远的更大目标会增强我们抵抗压力的力量。如果你把思想集中在自由和社区上,而社区是你靠坚定团结构建的,那么你就会找到抵抗压力的力量。“坚持,否则你会一事无成。”

如果嘲笑者挖苦自由、讽刺社区…如果“顽固的现实主义者”说利益是唯一的理想…只需忽略他们,并一如既往地使用copyleft。


本文发表于自由软件,自由社会:Richard M. Stallman选集一书。

返回顶部


[FSF 标志]“我们的使命在于维护、保障和推动人们使用、学习、复制和重新发布计算机软件的自由,我们的使命还在于捍卫自由软件使用者的权利。”

自由软件基金会是GNU操作系统的主要赞助机构。请通过以下方式支持GNU和FSF购买手册和装备 加入FSF成为会员、直接或者通过Flattr向FSF捐赠