软件专利 — 软件开发的障碍

这是 Richard M. Stallman 于 2002 年 3 月 25 日在剑桥大学计算机实验室发表的演讲的文字稿,该实验室由信息政策研究基金会组织。

文字稿(原始版本)和录音由 Nicholas Hill 提供。HTML 编辑和链接由 Markus Kuhn 和 GNU 网站管理员提供。


您可能熟悉我关于自由软件的工作。这次演讲不是关于这个的。这次演讲是关于一种滥用法律使软件开发成为一项危险活动的方式。这是关于专利法应用于软件领域时会发生的事情。

这不是关于软件专利。这是一种非常糟糕的描述方式,一种误导性的描述方式,因为它不是关于单个程序的专利。如果是这样,那就没有任何区别,基本上是无害的。相反,它是关于想法的专利。每项专利都涵盖一些想法。 软件专利是涵盖软件想法的专利,这些想法您会在开发软件时使用。这就是它们成为所有软件开发危险障碍的原因。

您可能听说过人们使用一个具有误导性的术语“知识产权”。正如您所看到的,这个术语是有偏见的,因为它做了一个假设:无论您在谈论什么,对待它的方式都应该像对待一种财产一样,而这只是众多选择之一。术语“知识产权”预先判断了您正在处理的任何领域中最基本的问题。这不利于清晰和开放的思考。

但是还有一个额外的问题,它与促进任何一种观点无关。它甚至阻碍了对事实的理解。“知识产权”这个术语是包罗万象的。它将各种完全不同的法律领域,例如版权和专利(与版权完全不同,每个细节都不同)以及商标(更加不同)以及其他各种或多或少常见的领域混为一谈。它们彼此之间没有任何共同之处。从历史上看,它们的起源是完全独立的。这些法律是独立设计的。它们涵盖了不同的生活领域和活动,并且它们提出的公共政策问题完全不相关。因此,如果您试图将它们混为一谈来思考,那么您肯定会得出愚蠢的结论。无论它们是什么,您都不能对“知识产权”持有任何明智或理智的观点。因此,如果您想清楚地思考,请不要将它们混为一谈。考虑版权,然后再考虑专利。了解版权法,然后单独了解专利法。

为了给您一些版权和专利之间最大的差异

  • 版权涵盖作品表达的细节;版权不涵盖任何想法。将版权视为涵盖任何想法是{法律错误}。但是专利涵盖想法和想法的使用。

  • 版权是自动产生的。专利由专利局根据申请颁发。这要花费很多钱。而且,支付律师撰写申请的费用甚至比实际申请的费用还要多。通常需要几年时间才能考虑申请,即使专利局通常在考虑申请时做得非常草率。

  • 版权的期限非常长。如今,在某些情况下,它们的期限可以长达 150 年,而专利的期限为 20 年,这足够长,您可以在有生之年经历它们,但在软件等领域的时间尺度上仍然相当长。

    回想 20 年前;个人电脑是一个新事物。想象一下,您只能使用 1982 年已知的想法来开发软件。

  • 版权涵盖复制。如果您写的小说与乱世佳人一模一样,但是您可以证明您从未看过乱世佳人,而且是您自己写的,那么这将是对任何侵犯版权指控的辩护。

    但是专利是对使用想法的绝对垄断。即使您可以证明您自己有这个想法,如果这个想法被其他人申请了专利,那也完全无关紧要。

我希望您在本次演讲的其余部分中基本上忘记版权,因为本次演讲是关于专利的,您永远不应该将版权和专利混为一谈。您对这些法律问题的理解就像您混淆水和乙醇后对实用化学的理解一样。

专利制度

当您听到人们描述专利制度时,他们通常会从希望获得专利的人的角度来描述它:获得专利会是什么样子;如果您带着专利走在街上会是什么样子,这样您就可以时不时地将其取出并指向某人说“把钱给我!”。这种偏见是有原因的,因为大多数会告诉您关于这个专利制度的人都与它有利益关系,因此他们希望您喜欢它。

还有另一个原因:专利制度很像彩票,因为只有极少数专利实际上会给专利持有者带来任何好处。实际上,《经济学人》曾经将它比作一个耗时的彩票。如果您看过彩票广告,它们总是邀请您思考获胜。它们不会邀请您思考失败,即使失败的可能性更大。专利制度的广告也是如此。它们总是邀请您思考成为获胜者。

为了平衡这种偏见,我将从受害者的角度来描述专利制度。也就是说,从一个想开发软件但被迫与可能导致被起诉的软件专利制度作斗争的人的角度来看。

那么,在您有了要编写什么类型程序的想法后,您要做的第一件事是什么?您可能要尝试处理专利制度的第一件事是找出哪些专利可能涵盖您要编写的程序。这是不可能的。原因是某些正在等待审批的专利申请是秘密的。经过一段时间后,它们可能会被公布,例如 18 个月。但是,这足够您编写程序甚至发布它了,却不知道将会有一项专利,并且您将被起诉。这不仅仅是学术性的。1984 年,编写了 Compress 程序(它是一个用于数据压缩的程序)。当时,它使用的 LZW 压缩算法没有专利。然后在 1985 年,美国就该算法颁发了专利,在接下来的几年中,那些分发 Compress 程序的人开始受到威胁。Compress 的作者不可能意识到他可能会被起诉。他所做的只是使用了他在期刊上找到的一个想法,就像程序员一直以来所做的那样。他没有意识到您不能再安全地使用在期刊上找到的想法了。

但是,让我们忘记这个问题……已颁发的专利由专利局公布,因此您可以找到它们的整个长列表,并确切地看到它们说了什么。当然,您实际上无法阅读整个列表,因为它们太多了。在美国,有成千上万的软件专利,而且您无法跟踪它们的内容。因此,您必须尝试搜索相关的专利。有些人说,在当今计算机时代,这应该很容易。您可以搜索关键字等等。嗯,这在一定程度上会奏效。您会找到该领域的一些专利。但是,您不一定会找到所有的专利。

举例来说,我记得有一个关于电子表格中自然顺序重计算的软件专利,现在可能已经过期了。这基本上意味着,当你让某些单元格依赖于其他单元格时,它总是在依赖项之后重新计算所有内容,以便在一次重新计算后,所有内容都是最新的。最初的电子表格是自上而下地进行重计算的,所以如果你让一个单元格依赖于较低的单元格,并且你有几个这样的步骤,你就必须重新计算几次才能使新的值向上传播。你应该让事情依赖于它们上方的单元格,你看。然后有人意识到,“为什么我不直接进行重计算呢?所有东西都在它所依赖的东西之后重新计算。以正确的顺序进行计算,它们都会是最新的。”这种算法被称为拓扑排序。我能找到的第一个关于它的参考文献是在 1963 年。该专利涵盖了几十种不同的拓扑排序实现方式,但你不会通过搜索“电子表格”找到该专利,因为它没有提到这个词。你也不可能通过搜索“自然顺序”或“拓扑排序”找到它,因为它没有包含任何这些术语。事实上,它被描述为“将公式编译成目标代码的方法”。我想我第一次看到它时,还以为它搞错了专利。

但假设你得到了一份专利清单。现在你想看看你被禁止做什么。你尝试研究这些专利;嗯,你发现很难理解它们,因为它们是用迂回的法律语言写成的,其含义很难理解。事实上,专利局所说的内容往往并不意味着它们表面上的意思。

在 20 世纪 80 年代,澳大利亚政府对专利制度进行了一项研究。研究结论是,除了国际压力之外,没有理由建立专利制度——它对公众没有任何好处——并建议废除它,如果不是因为国际压力的话。他们引用的其中一点是,工程师们不会尝试阅读专利来学习任何东西,因为专利太难理解了。他们引用了一位工程师的话说:“我在专利语中认不出自己的发明。”[笑]

这不仅仅是理论上的。大约在 1990 年,一位名叫保罗·海克尔的程序员起诉了苹果公司,声称 Hypercard 侵犯了他的几项专利。当他第一次看到 Hypercard 时,他不认为它与他的“发明”有任何关系。它看起来并不相似。但他的律师告诉他,你可以将这些专利解读为涵盖了 Hypercard 的一部分,所以他决定攻击苹果公司。当我在斯坦福大学就此发表演讲时,他在听众席上,他说“那不是真的,我只是不了解我的保护范围!”[笑]  我说,“是的,我就是这么说的!”[笑]

所以,事实上,你将花费大量时间与律师交谈,以弄清楚这些专利禁止你做什么。最终,他们会说这样的话:“如果你在这里做某事,你肯定会输;如果你在这里做某事,输的可能性很大;如果你真的想安全,就不要进入这个区域。顺便说一下,任何诉讼的结果都存在相当大的偶然性。”[听众中传来轻笑声]

开发者如何应对专利

现在你已经有了一个可预测的商业领域了,[听众中传来轻笑声]你打算怎么做?嗯,你可以尝试三种方法,其中任何一种都适用于某些情况。

它们是

  1. 避开专利,
  2. 许可专利,或者
  3. 在法庭上推翻它。

让我来描述这三种方法以及是什么让它们可行或不可行。

1. 避开专利

这意味着不要使用专利涵盖的想法。这可能很容易或很难,取决于这个想法是什么。在某些情况下,某个功能会被授予专利。那么你可以通过不实现该功能来避开专利。那么,这仅仅取决于该功能有多重要。在某些情况下,你可以没有它。

不久前,文字处理器 XyWrite 的用户收到了一封降级的邮件。降级删除了一个允许你预定义缩写的功能:当你键入缩写后跟一个标点符号时,它会立即将其替换为某些扩展。这样你就可以为一些长短语定义缩写,键入缩写,然后长短语就会出现在你的文档中。他们写信给我这件事,因为他们知道 Emacs 编辑器具有类似的功能。事实上,它自 70 年代以来就有了这个功能。这很有趣,因为它让我意识到,我这辈子至少有一个可以申请专利的想法。[笑] 我知道它是可以申请专利的,因为后来有人把它申请了专利!实际上,他们尝试了这些不同的方法。起初,他们试图与专利持有人谈判,结果发现他们没有真诚地谈判。然后他们研究了他们是否有机会推翻该专利。他们决定做的是删除该功能。你可以没有这个功能。如果文字处理器只缺少此功能,也许人们仍然会使用它。但随着各种功能开始受到影响,最终你得到的程序会让人们认为它不是很好,他们可能会拒绝它。

这是一个关于非常具体的功能的相当狭窄的专利。但是,你如何处理英国电信公司关于在拨号访问时一起遍历超链接的专利?遍历超链接对于当今计算机的主要用途至关重要。拨号访问也是必不可少的。你如何没有这个功能呢?顺便说一下,它甚至不是一个功能,它实际上只是两个功能的组合,只是任意并列而已。这很像在同一房间里拥有沙发和电视的专利。[笑]

有时,被授予专利的想法会非常广泛和基本,以至于它非常困难,基本上排除了整个领域。例如,在美国获得专利的公钥加密的想法。该专利于 1997 年到期。在此之前,它在很大程度上阻止了公钥加密在美国的使用。人们开始开发的许多程序都被扼杀了,并且因为专利持有人威胁他们而从未真正可用。然后,有一个程序逃脱了:PGP 程序,它最初是作为自由软件发布的。显然,专利持有者在开始攻击时,意识到他们可能会引起太多的负面宣传。因此,他们施加了限制,使其仅供非商业用途,这意味着它无法太流行。因此,他们大大限制了公钥加密的使用长达十年或更长时间。没有办法绕过该专利。你没有其他方法可以做到这一点。

有时,某个特定算法会被授予专利。例如,有一个关于快速傅里叶变换的优化版本的专利。它的运行速度快了大约两倍。你可以通过在你的程序中使用普通的 FFT 来避免这种情况。你程序的这部分将花费两倍的时间。也许这并不重要。也许这只是程序运行时间的一小部分,如果速度慢两倍,你不会真正注意到。或者,也许这意味着你的程序根本无法运行,因为它将花费两倍的实际时间来完成其工作。影响各不相同。

在某些情况下,你可以找到更好的算法。这可能对你有利,也可能不利。因为我们无法使用 Compress,所以在 GNU 项目中,我们开始寻找其他数据压缩算法。有人写信给我们说他有一个。他编写了一个程序,并决定将其贡献给我们。我们打算发布它,只是偶然的机会,我看到了一份《纽约时报》,其中碰巧有每周的专利专栏。我每隔几个月才看一次《泰晤士报》。所以我看了看,上面说有人获得了一项“发明了一种新的数据压缩方法”的专利。我想我最好看看这项专利。我拿到了一份副本,结果发现它涵盖了我们一周后就要发布的程序。所以那个程序在它诞生之前就死了。后来我们确实找到了另一种没有专利的算法。那成为了 Gzip 程序,它现在实际上是数据压缩的事实标准。作为一种在数据压缩程序中使用的算法,它很好。想要进行数据压缩的人可以使用 Gzip 而不是 Compress。但是,相同的专利 LZW 压缩算法也用于图像格式,例如 GIF 格式。而且,由于人们想要完成的工作不仅仅是“压缩我的数据”,而是“制作一个人们可以用他们的软件显示的图像”,因此事实证明很难切换到不同的算法。事实上,我们 10 年来都未能做到这一点!是的,当人们开始因使用 GIF 文件而受到诉讼威胁时,人们使用新的 Gzip 算法来定义另一种图像格式。但是,当我们开始对人们说“嘿,停止使用 GIF 文件,切换到这个!”时,人们说,“我们无法切换。浏览器还不支持新格式。”而浏览器开发人员说:“我们不着急。毕竟,没有人使用这种文件格式。”[笑]

实际上,社会在使用该特定格式 [GIF] 方面存在如此大的惯性,以至于我们无法让人们切换。本质上,社区对 GIF 格式的使用仍在推动网站使用 GIF 格式,结果是他们容易受到这些威胁。

事实上,情况甚至更加离奇,因为实际上有两个专利涵盖了 LZW 压缩算法。专利局甚至无法分辨出他们是在同一件事上颁发了两项专利。他们无法跟踪。这是有原因的。需要一段时间研究这两项专利才能看出它们实际上涵盖了同一件事。

如果这些是关于某种化学过程的专利,那就容易多了。因为你可以看到使用了哪些物质,输入是什么,输出是什么,以及采取了哪些物理行动。无论它们是如何描述的,你都会看到它们是什么,然后你会看到它们是相似的。

但是,当某种东西纯粹是数学时,你可以用多种方式来描述它,这些方式会非常不同。它们表面上并不相似。你必须真正理解它们才能看出它们在谈论同一件事。在专利局,他们没有时间。几年前,美国专利局平均每个专利花费17个小时。这不足以仔细思考它们。所以,他们当然会犯这样的错误。事实上,我告诉过你那个胎死腹中的程序。嗯,这个算法在美国也获得了两项专利。显然,这并不罕见。

因此,避免专利可能很容易{或}可能不可能;它可能很容易,但它会使你的程序毫无用处。这取决于具体情况。

这里还有一点我应该提到,有时一家公司或联盟可以将某种格式或协议变成事实上的标准。然后,如果该格式或协议被授予专利,那对你来说真是一场灾难。甚至还有受专利限制的官方标准。去年九月,当万维网联盟提议开始采用受专利保护的标准时,引起了很大的政治风波。社区反对,他们改变了自己的立场。他们回到坚持认为专利必须可以被任何人自由实施,并且标准必须可以被任何人免费实施。这是一次有趣的胜利。我认为这是任何标准机构首次做出这样的决定。标准机构通常愿意将实际上受专利限制的东西纳入标准,并且不允许人们自由地实施它。我们需要去其他标准机构,呼吁他们改变规则。

2. 专利许可

第二种可能性是,与其避开专利,不如获得专利许可。这不一定是一个选项。专利持有人不一定必须向你提供许可。这不是强制性的。十年前,编程自由联盟收到一封信,请求帮助,来自一个家族企业,该企业为赌场制造赌博机器,而且他们当时就使用计算机了。他收到另一家公司的威胁,说:“我们拥有专利。你不允许制造这些东西。关闭。”

我查看了那项专利。它涵盖了在网络上拥有多台计算机玩游戏,这样每台计算机都支持多个游戏,并允许你同时玩多个游戏。

你会发现专利局真的认为做任何事情的多个版本都很了不起。[笑] 他们没有意识到,在计算机科学中,这是概括任何事情最明显的方法。你做了一次。现在你可以做任意多次,制作一个子程序。他们认为如果你做任何事情两次而不是一次,你就发明了一个新东西。这不知怎的意味着你很聪明,没有人可以反驳你支配和限制他们的权利。无论如何,他没有获得许可,他不得不关闭。他甚至负担不起去法庭的费用。我会说,那项专利是一个显而易见的想法。法官可能也同意。但是,我们永远不会知道,因为他负担不起去法庭的费用。

但是,许多专利持有人确实提供许可。但是,他们通常为此收取很多钱。许可自然顺序重新计算专利的公司要求美国每份电子表格总销售额的 5%。我听说那是诉讼前的廉价价格。如果你真的让他们起诉你并且他们赢了,他们会要求更多。你可能负担得起 5% 的许可这项专利,但是如果你需要许可 20 项不同的专利才能制作该程序呢?那么你收到的所有钱都必须付给他们。如果你需要许可 21 项专利呢?

商界人士告诉我,实际上,其中两三个就会使任何业务都无法实现。

但是,在一种情况下,许可专利是一个非常好的解决方案。那就是如果你是一家跨国巨型公司。因为这些公司拥有大量专利,并且他们彼此交叉许可。这样,他们就逃脱了专利制度造成的大部分损害,他们只获得了好处。IBM 在 Think 杂志上发表了一篇文章——我相信是 1990 年第 5 期——关于 IBM 的专利组合,其中说 IBM 从其 9000 项美国专利中获得了两种好处。我相信今天的数量更多。这些好处是 (1) 收取版税,以及 (2) 获得他人专利的访问权。他们说后者的好处要大一个数量级。因此,IBM 从被允许使用他人专利的想法中获得的好处是 IBM 从许可专利中获得的直接好处的 10 倍。

这到底意味着什么?IBM 从访问他人专利中获得的好处是什么?基本上,是从专利制度可能给你造成的麻烦中解脱出来的好处。专利制度就像彩票。任何一项专利的结果可能什么都不是,可能是某些专利持有人的意外之财,也可能是其他所有人的灾难。但是 IBM 如此庞大,对他们来说,这会平均下来。他们可以衡量专利制度的平均危害和好处。对他们来说,麻烦本应是好处的 10 倍。我说本应是,是因为 IBM 通过交叉许可避免了经历这种麻烦。这种麻烦只是潜在的。它并没有真正发生在他们身上。但是,当他们衡量避免这种麻烦的好处时,他们估计这相当于他们从专利中收取的资金价值的 10 倍。

交叉许可的现象驳斥了一个普遍的神话,即饥饿的天才的神话。即专利“保护” “小发明家”的神话。这些术语是宣传术语。你不应该使用它们。这种情况是这样的:假设有一个杰出的设计师,无论是什么,他自己花了多年时间,在阁楼里挨饿,设计了一种新的奇妙的东西,现在想制造它。大公司要与他竞争,抢走所有业务,他会“挨饿”,这难道不是一种耻辱吗?嗯,我必须指出,高科技领域的人们通常不是独自工作,而且想法不是凭空产生的——它们是基于他人的工作——而且如果他们现在需要工作,他们很有可能获得一份工作。因此,这种想法,即这个伟大的想法来自这个独自工作的人,是不现实的,他有挨饿危险的想法也是不现实的。但是,可以想象的是,某人可能有一个想法,这个想法,也许与 100 或 200 个其他想法一起,可以作为制造某种产品的基础,并且大公司可能想与他竞争。因此,让我们看看如果他试图使用专利来阻止他们会发生什么。他说,“哦,不,IBM。你不能和我竞争。我有这项专利。”IBM 说,“让我们看看。让我们看看你的产品。嗯。我有这项专利、这项专利、这项专利、这项专利、这项专利和这项专利,你产品的哪些部分侵权了。如果你认为你可以在法庭上与所有这些作斗争,我会回去寻找更多。所以,你为什么不与我交叉许可呢?”然后,这位杰出的“小”[笑]发明家说,“好吧,好吧,我会交叉许可。”现在他可以回去制造这些奇妙的东西,IBM 也可以。IBM 现在可以访问他的专利,并获得与他竞争的权利,这意味着这项专利根本没有“保护”他。专利制度并没有真正做到这一点。

巨型公司在很大程度上避免了专利制度的危害。他们主要看到的是好的一面。这就是他们想要拥有软件专利的原因。他们是从中受益的人。但是,如果你真的是一个小发明家,或者为一家小公司工作,这家小公司将无法做到这一点。他们尝试过。问题是他们无法获得足够的专利来做到这一点。你看,任何给定的专利都指向某个方向。因此,如果一家小公司拥有的专利指向那里、那里和那里[显示左侧],而那边[显示右侧]的某个人将一项专利指向他们,说“给我你的钱”,他们是无能为力的,因为他们拥有的专利指向那里或附近[显示左侧],而不是那里[显示右侧]IBM 可以做到,因为凭借这 9000 项专利,他们指向四面八方。无论你在哪里,都可能有一项 IBM 专利指向你。因此,IBM 几乎总是可以让你进行交叉许可。但是小公司偶尔才能让某人进行交叉许可。他们会说他们想要出于防御目的的专利,但他们将无法获得足够的专利来保护自己。

在某些情况下,即使是 IBM 也无法让某人进行交叉许可。那是指有一家公司的唯一业务是获取专利并从人们身上榨取金钱。拥有自然顺序重新计算专利的公司就是这样一家公司。他们唯一的业务是威胁要起诉他人并从真正开发某些东西的人那里收取金钱。

法律程序没有专利。[笑] 我猜律师们有点理解自己处理专利制度会有多痛苦。结果是,你无法获得专利来让那家公司, Refac,与你交叉许可。所以他们到处榨取每个人。但我猜像 IBM 这样的公司认为这是做生意的一部分代价,所以他们可以忍受。

这就是许可专利的可能性,这可能有可能,也可能不可能。而且你可能负担得起,也可能负担不起。

3. 在法庭上推翻专利

据推测,为了获得专利,某些东西必须是新的、有用的和不明显的。这是美国使用的语言。我认为其他国家有不同的语言,但它与此基本等同。当然,当专利局开始介入时,他们开始解释新的和不明显的,“新的”结果意味着“我们文件中没有”,而“不明显的”往往意味着“对于智商为 50 的人来说不明显”。

一个研究过美国颁发的大部分软件专利的人——或者至少他曾经研究过;我不知道他是否还能跟上——说其中 90% 都无法通过水晶城测试,这意味着,如果专利局的人到外面去报摊买一些计算机杂志,他们就会看到这些想法是早已为人所知的。

专利局所做的事情是如此明显的愚蠢,你甚至不需要知道现有技术就可以看出它们是愚蠢的。这不仅限于软件。我曾经看到著名的哈佛小鼠专利,哈佛在对一种带有致癌基因的小鼠品系进行基因改造后获得了该专利。致癌基因是已知的,并且使用已知技术将其插入到现有的小鼠品系中。他们获得的专利涵盖了使用任何方法将任何致癌基因插入任何类型的哺乳动物中。你不需要了解任何关于基因工程的知识就能意识到这是荒谬的。

但我听说这种过度声明是很正常的做法,而且美国专利局有时会鼓励专利申请人扩大他们的权利要求。基本上,就是把权利要求扩大,直到你认为它们触碰到了一些明确的现有技术。看看你能从精神空间中攫取多少土地。

当程序员们看到大量的软件专利时,他们会说:“这太 显而易见了!”专利官僚们有各种各样的借口来为无视程序员的想法辩护。他们会说:“哦!但你必须从 10 或 20 年前的情况来考虑。”然后他们发现,如果他们把某件事反复讨论到死,你最终会迷失方向。如果你把任何东西都彻底拆解,进行足够多的分析,它都会显得不明显。你只是失去了所有关于显而易见性的标准,或者至少失去了证明任何显而易见或不显而易见标准的合理性的能力。然后,当然,他们把专利持有人描述为杰出的发明家,所有人都是。因此,我们不能质疑他们对我们能做什么的权力。

如果你上法庭,法官可能会对什么是显而易见的想法更加严格。但问题是,这样做要花费数百万美元。我听说过一个专利案例,我记得被告是高通,我相信最终的裁决是 1300 万美元,其中大部分用来支付双方律师的费用。原告还剩下几百万美元,因为他们输了。

在很大程度上,专利的有效性问题将取决于历史的偶然性。许多历史的偶然性,例如具体在何时发布了什么,以及有人设法找到了其中的哪些,哪些没有丢失,确切的日期等等。因此,正是许多历史的偶然性决定了专利是否有效。

事实上,英国电信关于将超链接与电话接入结合的专利是一件很奇怪的事情,我认为那是 1975 年申请的。我认为我在 1974 年第一次开发了 Info 包。Info 包允许你遍历超链接,而且人们确实使用电话拨号来访问系统。所以事实上,我为该专利制作了一件现有技术。那是我一生中拥有的第二个可获得专利的想法,但我不认为我有任何证据可以证明这一点。我不认为这件事有趣到可以发表。毕竟,跟踪超链接的想法,我是从 Engelbart 的编辑器演示中得到的。他是那个有有趣到可以发表的想法的人。我称之为“穷人的超文本”,因为我不得不在 TECO 的环境中实现它。它没有他的超文本那么强大,但它至少可以用于浏览文档,这正是它的目的,至于系统有拨号访问,嗯,确实有,但我没有想到其中一个与另一个有任何特殊关系。我不会尝试发表一篇论文说:“哦!我实现了这个穷人的超文本,猜猜看!计算机上也有拨号线路!” [笑] 我怀疑没有办法确切地说出我是在哪一天实现它的。而且它在任何意义上被发表了吗?好吧,我们邀请客人通过 ARPAnet 进入并在我们的机器上登录,这样他们就可以使用 Info 浏览文档并看到它。如果他们问我们,他们会发现我们有拨号访问。但正如你所见,历史的偶然性决定了你是否拥有现有技术。

现在当然,Engelbart 有一篇关于超文本的出版物,他们会展示它。但我认为它没有提到计算机上有拨号连接。因此,它是否足够尚不清楚。

所以,这是一种选择,即去法院推翻专利的可能性。但是,由于费用昂贵,即使你可以找到足以推翻专利的可靠的现有技术,这也往往是不可能的。因此,无效的专利,一个名义上不应该存在的专利(但实际上有很多这样的专利)是一种危险的武器。如果有人用无效的专利攻击你,那真的会给你带来很多麻烦。你也许可以通过向他们展示现有技术来吓唬他们。这取决于他们是否会被吓跑,或者他们可能会认为“好吧,你只是在虚张声势,我们认为你不能真的上法庭。你负担不起,所以我们还是要起诉你。”

所有这三种可能性都是你有时可以设法使用的东西,但通常你不能。所以你必须面对一个又一个专利。每次你或许能够找到你可以使用的这三种可能性之一,然后就会出现另一个专利,然后又一个,又一个。这就像穿越雷区一样。你迈出的每一步,每一个设计决策,可能都不会踩到专利。所以你可以迈出几步,而且很可能不会发生爆炸。但是,随着程序越来越大,你能够完全穿过雷区,并开发出你想要开发的程序,而永远不会踩到专利的可能性越来越小。

软件领域的特殊性

现在,人们过去常常对我说:“好吧,其他领域也有专利,为什么软件应该被豁免?”请注意其中奇怪的假设,即我们都应该以某种方式忍受专利制度。这就像说“有些人得了癌症。为什么你应该被豁免?” [笑] 在我看来,每个没有得癌症的人都是好的。但是,在背后,有一个不那么带有偏见的,是一个好问题,那就是:软件与其他领域不同吗?不同领域的专利政策应该不同吗?如果是这样,为什么?

让我来回答这个问题:专利在不同领域的适用性不同,因为在各个领域,专利与产品的关联方式不同。

在一个极端,我们有制药业,其中给定的化学式将被授予专利,因此该专利仅涵盖一种产品。其他产品不会被现有专利涵盖。如果这种新产品要获得专利,专利持有人将是开发新产品的人。

这符合我们对专利制度的幼稚想法,即如果你正在设计一种新产品,你将获得“该专利”,即每个产品都有一项专利,并且该专利涵盖了该产品的 *核心* 想法。在某些领域,这更接近事实。在其他领域,则离事实更远。软件处于相反的极端。这是因为软件包通常都很大,并且它们在新组合中使用了许多不同的想法。如果程序是新的,它不是仅仅被复制的,那么它很可能使用了不同的想法组合,当然还包括新编写的代码,因为你不能仅仅神奇地调用这些想法的名字就让它们工作。你必须把它们都实现。你必须以那种组合方式实现它们。结果是,当你编写程序时,你正在使用许多不同的想法,其中任何一个都可能被某人授予专利。其中两个的组合可能被某人授予专利。可能存在几种不同的方法来描述一个想法,这些方法可能被不同的不同人授予专利。因此,你的程序中可能有数千个漏洞,数千个可能已经被其他人授予专利的漏洞。这就是为什么软件专利往往会阻碍软件的进步——软件开发的工作。

如果是一个专利对应一个产品,那么这些专利就不会阻碍产品的开发,因为如果你开发一种新产品,它就不会已经被别人授予专利了。但是,当一个产品对应于许多不同想法的组合时,你的新产品很可能已经被别人授予专利了。事实上,现在有经济研究表明,在存在渐进式创新的领域强加专利制度会如何阻碍进步。你看,软件专利的倡导者说“好吧,可能存在问题,但比任何问题都更重要的是,专利必须促进创新,这非常重要,无论它们造成什么问题都无关紧要。”当然,他们不会大声说出来,因为这很荒谬,但他们隐含地希望你相信,只要它能促进进步,那就胜过任何可能的代价。但实际上,没有理由相信它能促进进步。我们现在有一个模型,精确地展示了专利 *如何* 能够阻碍进步。该模型可以适用的情况很好地描述了软件领域:渐进式创新。

为什么软件处于频谱的那个极端?原因是在软件中,我们正在开发理想化的数学对象。你可以建造一座复杂的城堡,让它靠在一根细线上,它会保持直立,因为它没有任何重量。在其他领域,人们必须应对物质的顽固——物理对象的顽固。物质会做它将要做的事情。你可以尝试对其建模,如果实际行为不符合模型,那对你来说就太糟糕了。因为挑战在于制造真正有效的物理对象。

如果我想在一个 while 语句中放入一个 if 语句,我不必担心 if 语句是否会以特定频率振荡并与 while 语句摩擦,最终它们会断裂。[笑] 我不必担心它是否会以某个更高的频率振荡,并在某个其他变量的值中感应出一个信号。我不必担心 if 语句会消耗多少电流,它是否可以在 while 语句内部散发热量。while 语句上是否存在电压降,导致 if 语句无法正常工作。我不必担心如果我在盐水环境运行这个程序,盐水是否会进入 if 语句和 while 语句之间并导致腐蚀。我不必担心当我引用变量的值时,我是否通过多次引用它而超过了扇出限制。我不必担心当我引用变量时,它具有多少电容,以及是否有足够的时间来为该值充电。当编写程序时,我不必担心如何物理组装每个副本,以及我是否能够设法访问将该 if 语句放入 while 语句中。我也不必担心如果 if 语句坏了,我如何获得访问权限来将其移除并替换为新的。[笑]

软件领域有许多问题我们不必担心。这从根本上来说让软件更容易。编写一个程序从根本上比设计一个可以工作的物理对象更容易。这可能看起来很奇怪,因为你可能已经听过人们谈论软件设计有多难,这是一个大问题,我们如何解决它。他们实际上不是在谈论我正在谈论的同一个问题。你看,我是在比较相同复杂度的物理系统和软件系统,即相同数量的部件。我说软件系统比物理系统更容易设计。但是这些不同领域的人的智慧是相同的,那么当我们面对一个简单的领域时,我们该怎么办呢?我们只是把它推得更远!我们将我们的能力推向极限。如果相同大小的系统很容易,那就让我们制作大十倍的系统,这样就会很难了![笑声] 这就是我们所做的!我们制造的软件系统在部件数量上远远大于物理系统。一个设计中有数百万个不同部件的物理系统是一个大型项目。一个设计中有数百万个部件的计算机程序,那可能只有 30 万行代码,几个人会在几年内完成。这并不是一个特别大的程序。我认为 GNU Emacs 现在的设计有数百万个部件,因为它有数百万行代码。这是一个基本上没有资金支持的项目。主要是人们在业余时间完成的。

还有另一个巨大的节省。如果你设计了一个物理产品,接下来你必须做的是设计制造它的工厂。建造这个工厂可能要花费数百万甚至数千万美元,而要制作程序的副本,你只需输入 copy。同样的 copy 命令可以复制任何程序。你想要 CD 上的副本,没问题。你刻录一张母盘 CD,然后将其送到 CD 工厂。他们将使用相同的设备来复制 CD 上的任何内容。你不需要建造一个工厂来制造这个产品。设计东西的成本大大简化并大大降低。结果是,比如对于一家汽车公司来说,如果他们要花费 5000 万美元建造一家工厂来制造一款新型汽车,他们可以聘请一些律师来处理一些专利许可谈判。他们甚至可以在需要时处理诉讼。设计一个同样复杂度的程序可能要花费 5 万美元或 10 万美元。相比之下,处理专利系统的成本是压倒性的。实际上,设计一个与汽车机械设计复杂度相同的程序,可能需要一个月的工作。一辆汽车有多少个零件……如果它是一辆没有计算机的汽车?[1] 你看,零件没有那么多。这并不是说设计一个好的很容易,而是说里面没有那么多不同的东西。

结果是,软件确实与其他领域不同,因为我们使用的是数学的东西。设计东西要容易得多得多。结果是我们经常制造出更大得多的系统,而且只需要少数人。结果是,专利制度不是接近“一个产品,一项专利”,而是我们处于一个产品涉及许多许多可以已经被授予专利的想法的系统中。

解释它的最好方式是用交响乐来类比。交响乐也很长,有很多音符,并且可能使用了许多音乐想法。想象一下,如果 1700 年代的欧洲各国政府决定通过建立一个欧洲音乐专利局来促进交响乐的发展,该专利局会对任何可以用文字表达的音乐想法授予专利。然后想象一下现在是 1800 年左右,你是贝多芬,你想写一部交响乐。你会发现让你的交响乐合法,不侵犯任何专利,比写一部好的交响乐要难得多。当你抱怨这一点时,专利持有人会说:“啊,贝多芬,你只是在抱怨,因为你没有自己的想法。你只想抄袭我们的发明。” 贝多芬碰巧有很多新的音乐想法,但他必须使用很多现有的音乐想法才能创作出可识别的音乐,才能创作出听众可能喜欢的,他们可以识别为音乐的音乐。没有人如此聪明,可以重新发明音乐,并创造出人们想听的东西。皮埃尔·布莱兹说他会尝试这样做,然后……谁会听皮埃尔·布莱兹的音乐?[笑声]

没有人如此聪明,可以完全重新发明计算机科学。如果他这样做了,他会创造出一些用户觉得如此奇怪以至于他们不想使用的东西。如果你今天看一个文字处理器,你会发现,我认为,有数百种不同的功能。如果你开发出一个很棒的新颖的文字处理器,这意味着里面有一些新的想法,但里面必须有数百个旧的想法。如果你不允许使用它们,你就无法制作出创新的文字处理器。

由于软件开发的工作量如此之大,结果是我们不需要任何人为的计划来激励新的想法。你只要让人们编写软件,他们就会有一些新的想法。如果你想编写一个程序,你想把它做得很好。一些想法会浮现在你脑海中,你会看到一些使用它们的方法。以前发生的情况是——因为我在软件专利出现之前就在软件领域——大多数开发人员都会发表他们认为值得注意的任何新想法,他们认为这些想法可能会让他们获得任何赞誉或尊重。那些太小或不够令人印象深刻的想法,他们不会发表,因为那太傻了。现在,专利制度应该鼓励公开想法。事实上,在过去,没有人对这些想法保密。他们对代码保密,这是真的。毕竟,代码代表了大部分工作。他们通常会对代码保密并发表想法。这样,员工就可以获得一些赞誉并感觉良好;你知道,他们被允许发表论文。在软件专利之后,他们仍然对代码保密,并为这些想法申请了专利。所以,事实上,公开并没有得到任何有意义的鼓励。现在保密的东西和以前保密的东西一样,但是以前发表出来我们可以使用的想法,现在很可能会被授予专利,并在 20 年内禁止使用。

在公共政策中解决软件专利问题

一个国家可以做些什么来改变这种情况?我们应该如何改变政策来解决这个问题?你可以从两个方面入手。一个是在申请和授予专利的地方,即专利局。另一个是在申请专利时,即专利涵盖什么的问题。

改变授予专利的标准,或者只是保持一个好的授予专利标准,可以在一个以前没有批准软件专利的国家/地区起作用;例如,在欧洲大部分地区。只需明确地加强欧洲专利局的规则,即软件不可获得专利。这对欧洲来说是一个很好的解决方案。欧洲现在正在考虑一项关于软件专利的指令。我认为该指令可能比这更广泛,但其重要含义之一是针对软件专利。只需修改这一点,使其声明软件思想不能获得专利,就可以在很大程度上将问题排除在欧洲之外,除了一些可能自己承认该问题的国家/地区——不幸的是,其中一个国家/地区是英国,这对你们来说是不幸的。

这种方法在美国行不通。原因是美国已经有大量的软件专利,而任何改变授予专利的标准都无法消除现有的专利。然而,事实上,这些专利并没有被正式标记为软件专利。我说软件专利,但我的真正含义是什么?我的意思是可能适用于软件,可能因为编写软件而被起诉的专利。专利局不会将专利分为软件专利和其他专利。因此,事实上,任何专利都可能因为适用于某些软件而让你因编写软件而被起诉。因此,在美国,一种解决方案必须通过改变专利的适用性、范围来完成,声明在通用计算机硬件上运行的纯软件实现,其本身并不侵犯专利,不受任何专利的保护,你不能因此而被起诉。这是另一种解决方案。

但是第一种解决方案,即对哪种专利有效的解决方案,是欧洲使用的好解决方案。

当美国开始出现软件专利时,没有进行政治辩论。事实上,没有人注意到。软件领域在很大程度上甚至没有注意到。1981 年,最高法院的一项裁决考虑了一项关于橡胶硫化工艺的专利。裁决认为,该设备包括一台计算机和一个程序作为橡胶硫化工艺的一部分,这一事实并不能使其不可获得专利。第二年,审理所有专利案件的上诉法院推翻了限制条件。他们说,其中有计算机和程序的事实使其可获得专利。任何东西中有计算机和程序的事实使其可获得专利。这就是美国开始出现商业程序专利的原因。因为商业程序是在计算机上执行的,这使其可获得专利。因此,这项裁决做出了,我认为自然顺序重新计算专利是最早的专利之一,甚至可能是第一个。

但在整个 80 年代,我们大多不知道这件事。大约在 1990 年左右,美国的程序员开始意识到他们面临着来自软件专利的危险。所以,我看到了该领域在那之前是如何运作的,以及在那之后是如何运作的。我在 1990 年之后没有看到任何特别的进展加速。在美国没有进行政治辩论,但在欧洲却进行了大规模的政治辩论。几年前,有人推动修改建立 欧洲专利局 的慕尼黑条约。它有一条条款声明软件不可获得专利。推动的目的是修改该条款,开始允许软件专利。但是社区注意到了这一点。实际上,带头的是自由软件开发者和自由软件用户。

我们不是唯一受到软件专利威胁的人。所有软件开发者都受到软件专利的威胁,甚至软件用户也受到威胁。例如,当苹果公司不太害怕保罗·赫克尔的威胁时,他威胁要开始起诉苹果客户。苹果公司发现这非常可怕。他们认为他们负担不起让客户被这样起诉,即使他们最终会赢。因此,用户也可能被起诉,要么是作为攻击开发人员的一种方式,要么只是作为一种自己榨取他们钱财或自己对他们造成破坏的方式。

所有软件开发者和用户都容易受到侵害,但首先发起组织反对的是欧洲的自由软件社区。事实上,欧洲专利局的管理国已经两次投票否决了对该条约的修正案。随后欧盟介入,欧盟各理事会在这个问题上产生了分歧。

看起来,负责推广软件的部门反对软件专利。但他们并不主管这个问题。主管的是开放市场理事会,而该理事会由一位支持软件专利的人领导。他们基本上无视了公众向他们表达的意见,并提出了一项允许软件专利的指令。[2] 法国政府已经表示反对。欧洲其他国家的政府也在努力反对软件专利,并且在这里开始这样做至关重要。

根据欧洲反对软件专利运动的领导人之一哈特穆特·皮尔奇的说法,主要推动力来自英国专利局。英国专利局显然偏袒软件专利。他们进行了一次公众咨询,大多数回应都反对软件专利。然后他们写了一份报告,说人们似乎对软件专利感到满意,[笑声] 完全无视了这些回答。你看,自由软件社区说,“请把你们的答案发给他们,也请把你们的答案发给我们,我们会公布它们。” 所以他们公布了这些普遍反对的答案。你根本无法从英国专利局发布的报告中猜到这一点。

他们[英国专利商标局]使用一个他们称之为“技术效果”的术语。这是一个可以被无限延伸的术语。你应该认为它指的是,一个程序创意只有在与特定的物理活动密切相关时才可以获得专利。如果这是解释,那么大部分问题将得到解决。如果只有那些真正与特定的技术、特定的物理结果相关的软件创意才可以获得专利,而你在没有使用程序的情况下也可以为这种结果申请专利,那就没问题了。问题是你能够延伸这个术语。你可以把运行任何程序得到的结果描述为物理结果。这个物理结果与其他结果有何不同?好吧,这是计算的结果。结果是,英国专利局提出的东西看起来像是可以解决大部分问题,但实际上却为几乎任何东西的专利开了绿灯。

同一部门的人员也参与了一个版权问题,这个问题与软件专利无关,只是由同一批人处理。这是一个关于解释最近的欧盟版权指令的问题,这是一项糟糕的法律,类似于美国的数字千年版权法。但是各国在如何实施该指令方面有一定的自由度。英国正在提出实施这项指令的最严厉的方式。你可以通过正确实施来大大减少它造成的损害。英国希望最大限度地发挥这项指令的专制效果。似乎有一个特定的群体,贸易和工业部[已存档][笑声]需要加以约束。[笑声] 有必要对其活动进行制约。阻止他们创造新的权力形式。

软件专利以一种新的官僚形式束缚了每一位软件开发者和每一位计算机用户。如果使用计算机的企业意识到这会给他们带来多大的麻烦,他们肯定会群起而攻之,我相信他们能够阻止它。企业不喜欢被官僚主义束缚。

当然,有时候,官僚主义会起到重要的作用。在某些领域,我们希望英国政府能够更认真地将某些企业束缚在官僚主义中,例如当涉及到动物转移时。[3] 但在某些情况下,当它除了制造人为垄断、使某些人可以干预软件开发、从开发者和用户手中榨取金钱之外,没有任何其他目的时,我们就应该拒绝它。

我们需要让管理层意识到软件专利会对他们造成什么影响。争取他们在欧洲反对软件专利方面的支持。

战斗还没有结束。仍然可以获胜。[掌声]

脚注

  1. 一个自动变速器中大约有 300-400 个独特的部件,变速器通常是汽车中最复杂的部件。设计变速器可能需要六个月到一年的时间,即使这样,实际制造和使其正常运行可能需要更长的时间。然而,一个具有 500 到 600 个功能部件的程序,实际上只有 200 到 300 行代码,一个优秀的程序员可能需要一天到一周的时间来编写、测试和调试。
  2. 在 2005 年 7 月 6 日,欧洲议会以 680 票中的 648 票否决了软件专利指令。然而,我们不能忘记软件专利的问题,因为那些推动专利化的人正试图复活最近被否决的指令。我们还必须确保欧洲专利局(EPO)和欧盟不同国家的国家办事处停止为包含在其他类型发明中的软件授予专利。
  3. 为了使口蹄疫更难传播。