人都会跟着自己的价值取向和目标行动,而这些东西具体是什么则常常因人而异。名誉、财富、爱情、生活、快乐、自由,耳熟能详的例子不再多加例举。当目标基于原则时,我们称之为理想主义。我在自由软件领域工作,工作动机就始于理想主义的目标——宣扬自由和合作精神。我想促进自由软件的发展,用自由软件替换阻碍合作的专有软件,让我们的社会从中受益。 这也是 GPL 采用 Copyleft 形式的主要原因。添加到 GPL 程序里的代码都必须是自由软件,就算源码放在其他文件里也不能例外。我发布代码是为了帮助自由软件而不是专有软件,这样才能鼓励其他开发者也拥抱软件自由。既然专有软件开发者用版权阻止我们分享,我们也可以用版权给合作者们提供一个独有优势,让愿意合作的人有机会使用我们的代码。 不是所有 GPL 的使用者都心怀着这个目标。许多年以前,有人想要我的一位朋友用其他许可证重新授权他的自由软件,我朋友的回复大致如下: >“有时我编写自由软件,有时我编写专有软件——但在编写专有软件的时候,我要收费。” 他愿意把劳动成果共享给自由软件社区,是因为这本就是一个互相分享的社区。但他没有任何理由转手送给商业公司,特别是当公司的产品还和社区相对立的时候。他的目标和我不同,但他觉得 GPL 也满足了他的目标。 要想在这个世界有所成就,单单理想主义并不足够。你还要有能做成事的方法,换种说法就是要“实用主义”。GPL 实用吗?看看它的成果吧。 想想 GNU C++,为什么我们有自由的 C++ 编译器?因为 GPL 要求它必须是自由的。GNU C++ 基于 GNU C 编译器,由行业联盟 MCC 进行开发。MCC 一般会尽可能地把它的产品作为专有软件发布,但他们的 C++ 前端不是,因为 GPL 只允许他们以自由软件的形式发布。C++ 的前端里有许多新文件,但既然最后它们都要和 GCC 一起链接,GPL 依然适用。显然,我们的社区从中受益匪浅。 再想想 GNU Objective C。NeXT 最开始想把前端作为专有软件,提议只发布 .o 对象文件,让用户自己链接到 GCC,借此绕过 GPL 的要求。但我们的律师说即使这样也不会绕过 GPL,这是不可行的。然后,他们就把 Objective C 的前端作为自由软件发布了。 这些例子都是多年以前的,但 GPL 依然助推着自由软件。 许多 GNU 库使用 LGPL,但不是全部。实现命令行编辑的辅助库 Readline 就使用了普通 GPL。有次我发现有非自由软件也用了 Readline,就告诉,了软件的开发者他不能这么做。也许他可以放弃命令行编辑这个功能,但实际上他遵守 GPL 的要求重新发布了软件,这个软件变成了自由软件。 改进 GCC(Emacs/Bash/Linux/任何GPL程序) 的程序员常常受雇于公司或大学。程序员想把改进回馈社区、让其包括在新版本中时,领导可能说:“等一下——你的代码归属于我们!我们不想分享它,我们要把改进版做成专有软件商品。”这就是 GPL 发挥作用的时候。程序员告诉领导专有软件会造成版权纠纷,领导发现他只有两个选择:以自由软件形式发布,或者干脆不发布。大部分情况下,他会让程序员继续原来的打算,然后改进就进入了下一个版本。 GPL 不是老好人,它会拒绝一些人们想要干的事情。有些用户说这不好,说 GPL “排挤”专有软件开发者,而这些开发者需要被引入自由软件社区。但我们并没有排挤他们,是他们自己选择了不加入。决定发布专有软件的同时,他们也决定了远离自由软件社区。想加入社区就要和我们合作,如果不想加入社区我们也不能硬拉他们进来。当然了,我们能给他们加入社区的契机,GPL 就利用自由软件的生态提供了一个契机:“如果你愿意以自由软件形式发布,你就可以使用这些代码。”虽然不是所有人都会买账,但有时这的确有用。 专有软件的发展不会为社区做出贡献,但专有软件的开发者却常常想从我们这索取些什么。自由软件的用户给开发者尊重和感谢,让开发者感到自我价值的满足。然而,当商业公司告诉你“让我们的专有软件使用你的代码,这样你就有成百上千的用户了”时,这份诱惑十分难以抵抗。但是长期来讲,我们需要抵制住这份诱惑,这样才能有更好的未来。 有时诱惑和压力不是这么明显,特别是自由软件组织的政策向专有软件妥协时。X Consortium 和它的后继者 Open Group 就是一个例子:由专有软件开发商资助,数十年如一日地劝说程序员们放弃 Copyleft。当 Open Group 试图使X11R6.4变成非自由软件时,我们抵抗住了,而我至今依然庆幸当时做了正确的选择。1998年9月,在 X11R6.4 使用非自由软件许可证发布几个月之后,Open Group 推翻了原决定,用 X11R6.3 的许可证重新发布了 X11R6.4。感谢 Open Group,但只要添加限制依然是个可能,这次的反转就不能算驳倒了我们之前的结论。 实用主义角度来说,看重长期目标可以帮助你抵挡这份压力。专心于自由,构建起稳固的社区,你就能找到让你保持坚强的力量。“心有所念,否则你会被轻易动摇。”就算愤世嫉俗者嘲弄自由和社区,即使“精明的现实主义者”坚持利益高于一切,我们大可以无视他们,继续使用 copyleft 就好。