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 要求的方法。但我们的律师说,这不会规避这些要求,这是不允许的。因此,他们使 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 联盟(及其继任者 Open Group)提供了一个例子:由制造专有软件的公司资助,他们十年来一直努力说服程序员不要使用 Copyleft。当 Open Group 试图使 X11R6.4 成为非自由软件时,我们这些抵制过这种压力的人很高兴我们这样做了。
1998 年 9 月,在 X11R6.4 以非自由发行条款发布几个月后,Open Group 撤销了其决定,并根据用于 X11R6.3 的相同的非 Copyleft 自由软件许可证重新发布了它。谢谢你,Open Group——但随后的逆转并不能使我们从添加限制是可能的这一事实中得出的结论失效。
务实地说,考虑更长远的目标将增强你抵制这种压力的意志。如果你专注于通过保持坚定可以建立的自由和社区,你就会找到这样做的力量。“坚持某些原则,否则你就会屈服于任何事情。”
如果愤世嫉俗者嘲笑自由,嘲笑社区……如果“冷酷的现实主义者”说利润是唯一的理想……那就忽略他们,照样使用 Copyleft。