Richard Stallman谈软件专利对开发社区的影响

自由软件基金会(Free Software Foundation)主席Richard Stallman最近在杂志上撰文分析了软件专利对开发社区的影响,批评了专利体系的弊端,同时呼吁限制软件专利的效力。 

软件专利的官司在今年愈发频繁,最受人关注的莫过于Oracle与Google走上法庭:

Oracle收购Sun Microsystems的一个目的就是控制Java语言,而更为重要的则是其专利。在众多的大公司中,Oracle的一个眼中钉就是Google,其针对Android(及其Dalvik VM)的类Java编程语言导致其被Oracle指控,控告其违背了Oracle的专利与版权,甚至发现Oracle测试套件中的测试代码出现在了Google的仓库中。这场争论由来已久,从最开始的132个声明降到了3个,接下来又进一步降到了仅仅2个专利,其中一个专利将于今年12月到期。

法官Paul Grewal让这两家公司尝试通过协商来解决问题。如果Oracle能够证明Google侵犯了其专利,那么Google将会支付280万美金。然而Oracle拒绝了,认为Google支付的太少。这个数字是根据到今年底(RE38104到期日)Android收益的0.5%及到2018年4月(专利6061520的到期日)Android收益的0.015%计算出来的。值得注意的是,USPTO已经判定RE38104无效,但Oracle还会继续上诉。

最后一个专利(6061520)被USPTO判定为有效。由于这两家公司无法达成和解,因此Oracle期望证明Android违背了该专利,如果证实确实如此,那么Oracle会要求法庭确定赔偿额。该专利涉及到静态数组初始化的性能改进:该专利表示了对传统的静态数组初始化的改进,这是通过减少虚拟机执行的代码量以静态地初始化数组来实现的。为了实现代码量的减少,在联合类文件时,预加载器会识别出所有方法并执行这些方法以确定他们所执行的静态初始化。接下来,预加载器会创建出一个表达式以标明方法所执行的静态初始化并将该表达式存储到.mclass文件中,然后替换掉该方法。这样,该方法的代码(包含了很多指令)就会被一个单独的表达式所替代,该表达式会指示虚拟机执行静态初始化,这样就会节省大量内存。虚拟机会被修改以识别出该表达式并对数组执行恰当的静态初始化。

Richard Stallman首先指出某些软件专利并不是针对特定的应用程序,而是描述的一些想法、创意:

专利威胁着每一位软件开发人员,如你所见,我们担心已久的专利战争已经爆发。不论是软件开发人员还是软件用户都应该让软件不受专利约束。

威胁我们的专利称为“软件专利”(software patents),但是这个词会让人误解。实际上,这种专利不是针对某一个具体的应用程序,而是描述了一些想法和创意,如果有人未经授权使用了该创意,那么就会被起诉。所以,比较清楚地叫法应该是“计算性想法专利”。

美国的专利体系没有说明哪些是软件专利,哪些不是。软件开发社区应该区分对我们不利的专利,如果有一些物理方面或者化学方面的专利,那么不会威胁到软件领域,但是如果是描述的计算思想,那么可能会影响到开发社区。

Richard Stallman引用了公共专利基金会Dan Ravicher对Linux系统的研究数据指出,一个程序不经意间会涉及到大量的专利威胁:

Dan Ravicher在研究Linux时发现,该程序源代码中涉及到的计算思想涉及到283项美国专利,而估计Linux只占整个GNU/Linux系统的0.25%,所以由此可以看出问题的严重性,该系统收到大约10万项专利的威胁。即使其中有半数专利被取消,情况也不会发生根本好转,无论是10万还是5万,都是噩梦。

他认为应该从整体解决这个问题:

我们需要从根本上解决这个问题。通常的建议是修改专利标准,比如,禁止颁发计算方法和系统方面的专利。但这种方式有两大缺点。
首先,专利律师非常擅长重新描述专利,使其适合任何标准的规定。他们将限制专利实质的任何尝试变成仅仅是形式的需要。例如,许多美国计算想法专利描述了一种执行特定计算的系统,它包括一个算术单元、一个指令顺序器、一个存储器加上一些控制组件。这是一种描述计算机的特殊方式,该计算机运行执行特定计算的软件。它设计成使专利申请符合美国专利系统的标准。
其次,美国已经拥有数千种计算想法专利,修改标准避免颁发更多专利解决不了现有专利的问题。我们需要等近20年,直到这些专利过期后才能完全解决这一问题。立法废除现有专利可能违反宪法。

最后,Richard Stallman提出,应该限制软件专利的效力来解决这个问题:

我的建议是修改专利的效力。我们应该立法规定,在通常使用的计算设备上开发、分发或运行应用程序不会构成专利侵权。这种方式有以下优点:

  • 它无需将专利申请分为“软件”或者“非软件”。
  • 它防止开发者和用户受到现有或未来可能出现的计算想法专利威胁。
  • 专利律师不能通过换种方式填写申请战胜预期效力。

这种方式不完全废除现有的计算想法专利,因此它们将继续适用于使用特定用途的硬件的实现。这是一大优点,因为它避免了该计划的合法性争议。几年前,美国出台了一部法律,保护外科医生遭遇法律诉讼。即便外科手术步骤已经申请专利,外科医生也是安全的。这为该解决方案提供了先例。

有Oracle和Googl的官司的最新进展可以查看InfoQ的相关新闻:

  • Oracle与Google官司的陪审团只发现了9行版权代码
  • Oracle vs Google:在陪审团考虑专利问题之际法官Alsup披露自己是个程序员
  • 陪审团认定Google并未侵犯Oracle专利
  • Oracle和Google拟就Android-Java一案的判决提起上诉

提到软件专利,有人就会想到另一个方面——开源,笔者推荐庄表伟在InfoQ中文站发表的文章《当我谈开源时,我谈些什么?》,相信会让读者有所收获。

你可能感兴趣的:(Richard Stallman谈软件专利对开发社区的影响)