我在1986年第一次遇到通用公共许可证(GNU General Public License)时,在我看来它毫无神奇之处。它的创新保护版权的方法(一切都错误地颠倒了)以及GNU计划的大胆构想(只是通过做一些更好和更自由的来废弃UNIX)对我具有极大的震撼力,或许就像量子物理学带给爱因斯坦的震撼一样。(你不必告诉我说我和爱因斯坦没有可比性——我知道这一点。)
在1987年下载GNU C编译程序之后,我用GNU软件开发了大量的设施。我自己的编程技能经历了最为显著的转型。(它让我想到自己第一次弹古典吉他的经历,当时我没有弹奏 Junker的,而是弹奏“现实”吉他,该乐曲不但听上去效果更好,而且更便于长时间地弹奏。GNU编程就像弹奏美好的乐器一样……)通过这次经历,我获得了处理计划的信息,而在一年前我还把它当作完全空想而置之不理:开发世界上第一种本机码C++编译器,于1987年12月初次发布。
我写入开源时,开始明白GPL提供了绝无仅有的机会来实现自由软件的商业化。我用了两年的时间来寻找与我有着同样想法的企业,第一家自由软件企业(按照定义,是第一家开源软件企业)诞生了。O’Reilly的书中记述了有关这个企业的故事,但是书中的主要观点是:GPL是怀着自由的心态编写的,没有考虑称为嵌入式系统的计算机世界。Cygnus 成为嵌入式系统领域的主要经营者,1991年免费软件基金会(Free Software Foundation)将GPL更新为2版,发布LGPL。在我看来,这些澄清并不是向自由妥协,以改善Cygnus的商业前景(尽管有正面影响)。相反,它们是技术进步,在很大程度上就像是在获得一些经验之后有望在协议定义中所发现的进步一样。GPLv2代表了双赢。
16年来,尽管版权法、公约和解释的轻重与主旨都发生了变化,但GPL 2.0版一直保持未变。尽管曾受到规模或大或小、实力或强或弱、行事或慎重或鲁莽的企业以所有可能方式的挑战,就像是这种挑战是他们的第一要务一样, GPL 2.0版还是保持未变。一些企业甚至放肆地宣称:“既然我们不知道如何像其他成功的企业那样用GPL赚钱,GPL一定会破产。”没错。
也是在那时,事实证明,假定安全的加密技术不堪一击,对此我们不应感到丝毫诧异。加密方法(通常意义上的安全性)的全部要义在于创建防御能力,使攻击成本高于回报价值。16年后,成本已经发生了相当大的变化:8-12代的摩尔定律实现每台计算机256x到4096x的计算能力,互联网再次使这种计算能力成倍增长,这是因为分布式协作分裂计划的普及,更不用说椭圆曲线算法惊人地彻底削弱加密力度。在加密领域,我们假定有专门的对手夜以继日地努力挑战系统,那些无动于衷的就会失败。需要更加强有力的日常防护。
GPLv2取得了惊人的成功,是世界上一些最激动人心的软件计划毫无例外的许可证首选。但是在边际情形(corner case)下,免费软件基金会(Free Software Foundation)力求确保的自由被遏制了,这种欺诈也对使开源成为商业成功的具有吸引力的基础的公正交易产生不良影响。这种以整个社区的损失为代价来换取个别成功的做法不是开源所追求的(当然也不是自由软件所追求的)。
我仔细阅读了最近发布的GPLv3草案,认为它是一项非常了不起的成就。(免责声明:我不但不是爱因斯坦,还不是律师。然而,我20年的自由软件GPL经验以及18年的经商经验应该是具有一定价值的)。通过阅读,我了解到三件事情。首先,GPLv3是我们所熟悉的,而不是就像完全需要重新学习一样。其次,GPLv3处理边际情形,这些情形如果不解决将导致崩溃,使我们的所有正面工作付之东流;崩溃就够糟糕了,但是可以预见的崩溃是很不体面的。第三,GPLv3再次证实,在过去这20年以来,自由软件运动获得了全面发展和全面成功,免费软件基金会(Free Software Foundation)的目标仍是以软件自由为中心,他们唯一赞同禁止的是那些力求破坏这种自由的人。令人振奋的是,一个组织面对繁荣发展仍能坚持原则。
今天早上,我将GPLv3放在一个显示器上,将OSD放在另一个显示器上,阅读了一份实现OSI认证应该不会有问题的许可证。根据我的阅读,我鼓励免费软件基金会(Free Software Foundation)在准备就绪时提交最后草案,以便整个开源社区都能够评审、讨论并向OSI董事会提出建议,不论他们是否和我的所见相同。果真如此的话,我们将看到OSI批准的许可证行列中将增加极其必要的更新,并且我们将能够鼓励那些以公正作为业务立足之本的企业,为他们提供有效而安全的许可选择。