【漫谈软件】为什么软件应该是自由的
为什么软件应该是自由的理查德·斯托曼 著软件的存在不可避免地引起了有关它的使用应该如何决定的问题。举例来说,假设一个人拥有一个程序的一份拷贝,而他又遇到另一个想要拷贝的人。他们就有可能复制这个程序;那么这种做法的容许与否应该由谁来判断呢?参与其中的个人?还是被称作“所有者”的另一方?典型的软件开发人员会以开发人员的利润最大化这个标准作为假设来考虑这些问题。商业的政治力量使得政府采纳了上述标准和开发人员建议的答案:即软件都有一个所有者,而这个所有者一般是一个参与其开发的公司。而我却喜欢用一个与之不同的标准来考虑相同的问题:大众社会的普遍繁荣和自由。这个问题还不能被现有的法律所裁定—法律应当遵循道德规范,而不是反过来。现行的惯例也不能解决这个问题,虽然它们可以提议可能的答案。唯一的办法是看看如果软件有了所有者,谁被帮助、谁被伤害、为什么以及有多少。换句话说,我们应该对整个社会,包括考虑个人自由和物质生产,进行成本-利益分析。在这篇文章中,我将叙述拥有所有者带来的影响,并指出结果是不利的。我的结论是程序员有义务去鼓励他人共享、再发布、研究并改进我们编写的软件:换句话说,就是要写“自由”软件。(1)
软件所有者如何合理化他们的权力在当前的系统中,程序就是财产;从中获利的人提出了两个论证以支持他们拥有程序的声明:感情上的论证和经济上的论证。感情上的论证是这样的:“我在这个程序中投入了汗水、热情和精力。它因我而来,所以它是我的!”这个观点并不需要郑重的反驳。当这适合他们时,程序员可以培育这种依恋的感情;但是这并不是不可避免的。举个例子,细想同样的程序员是多么愿意把一切权力转让给一个大公司以获取薪水呀;那种依恋的感情神秘地消逝了。与之相对,中世纪时期伟大的艺术家和工匠们,谁又没有在自己的作品上署名呢。对于作品来说,艺术家的名字不那么重要。重要的是工作完成了—而且满足了要求。这种观点盛行了几百年。经济上的论证是这样的:“我想变得富有(通常被不准确地称为‘谋生’),如果你不让我通过编程致富,那我就不编了。其他人和我一样,所以没人再编程了。然后你将因无程序可用而陷入困境!”这种威胁通常含沙射影,以聪明人提出的友好建议为掩饰。稍后我会解释这种威胁不过是虚张声势罢了。首先我想讨论一个隐含的假设,该假设在以另一种方法表达这个论证时会更加明显。该表达以对比有专利程序和无程序可用的社会效益开始,然后得出专利程序的开发整体上是有益的,并且应该加以鼓励。然而此论调的荒谬之处在于仅仅对比了两种结果—专属软件和没有软件—并假设没有其他的可能。软件系统有了版权,软件开发通常就和其所有者的存在有关,他们可以控制该软件的使用。只要这个联系存在,我们就经常要在专有软件和没有软件之间作出选择。然而,这个联系并不是固有或必然的;而是特定的社会/法律政策决定的后果,而这决定正是我们所质疑的:软件该有所有者的决定。将事情解释成只能在专利软件和没有软件两者中二选一的论点促使我们提出质疑。
反对拥有所有者的论证当前的问题是,“软件的开发应该和限制它们使用的所有者联系在一起吗?”为了解决这个问题,我们必须独立地判断两种活动的社会影响:开发软件的影响(不管它以何种方式发布)和限制它使用的影响(假设软件已经开发完成了)。如果两者之中一个是有益的而另一个是有害的,丢弃二者的关联而只做有益的那个对我们将是有利的。用另一方法来讲,如果限制已开发软件的发布对社会整体有害的话,那么一个有道德的软件开发人员会拒绝这样做。为了判定限制共享的影响,我们需要对比限制(亦即,专属)程序社会的价值和与共享程序社会的价值。这就意味著对比两个可能的世界。这项分析论及一个简单的反方观点—有时称为“给邻居一份程序拷贝的好处会被对拥有者所造成的伤害所抵消。”这种观点假设利害在程度上是相等的。我们的分析包括这些程度的之间对比,并展示好处要大得多。为阐明这个观点,让我们把它应用到另外一个领域:公路建设。用通行费来为所有的公路建设筹集资金也许是可行的。这会涉及在每个街角设立收费站。这样的系统会给改善道路以极大的鼓励。道路使用者为道路付费也是它的一个优点。然而,收费站却是顺利行驶的人造障碍物—它是人造的,因为它不是道路或汽车工作方式的结果。对比免费公路和付费公路的可用性,我们发现(其他方面都相同)无收费站的公路的建造和运行都更经济,使用起来也更安全、更高效。(2)在贫穷的国家,收费站可能使许多公民用不起公路。因而没有收费站的公路以较低的成本为社会提供更多的利益;对社会来说它们更可取。因此,社会应该选择用其他方式而不是用收费站来筹集筑路资金。道路的使用是一旦建成,就应该免费使用。当收费站的提倡者仅作为一种筹资手段来提议收费站时,他们扭曲了可行的选择。收费站的确可以增加资金,但它们还有其他的作用:实际上,他们使公路降级。付费公路不如免费公路好;如果更多的道路或更先进的道路意味着用收费公路代替免费公路的话,那么这应该不是进步。当然,建造免费公路也需要资金,这是大众必须以某种方式支付的。然而,这并不暗示收费站存在的必然。既然哪一个都要花钱,我们宁愿花钱建设免费公路而获得更多的价值。我并不是说付费公路比没有公路还要糟。也许会是那样,如果费用非常之高以至于没人使用公路—但收费者不太会采取这样的政策。然而,只要收费站造成明显的浪费和不便,则最好还是用阻碍少的方式筹集资金。为把相同论证应用在软件开发上,我现在将证明给有用的软件设置“收费站”会使社会付出了极大的代价:它使程序的建造和发行更昂贵、使用上也更加令人不满意、效率也更低。接着,我将指出程序的建造应该以其他方式来鼓励。然后我将继续解释鼓励和(实际上达到必要的程度)资助软件开发的其他方法。
障碍软件带来的害处细想有这么一个时刻,一个程序开发完成,而且所有开发款项都已付清;现在社会必须在专属或自由共享与使用之间二选一。假设该程序的存在和可用是一件令人渴望的事情。(3)对程序的发布和修改施加限制不能使它更容易使用。它们只会造成阻碍。所以影响一定是负面的。但有多严重?又是什么样的呢?这种阻碍造成的实质危害有三个不同等级:
[*]更少的人使用该程序。
[*]使用者无法改写或修复该程序。
[*]其他开发人员不能从这个程序中学到东西,或者不能以它为基础进行新的开发。
每一级别的物质危害都伴随著一种心理伤害。这指的是人们从他们随后的感觉、态度和倾向当中做出的决定所造成的影响。人们思考方式的变化对其和同类公民之间的关系有深远的影响,并且能够造成物质的后果。这三个级别的物质危害还浪费了程序可贡献的部分价值,但并不能使它们减小到零。如果他们浪费了程序的所有价值,那么编写程序对社会的最大伤害就是写程序的努力都白费了。按理来说,能够卖钱的程序必须提供一些净增的、直接的物质利益。然而,考虑到随之而来的心理伤害,专属软件的开发所造成的危害没有限度。
阻碍程序的使用第一级危害妨碍了程序的简单使用。拷贝程序的成本近乎于零(而且你自己拷贝就可以),所以在自由市场,它的价格也应该近乎于零。而许可证费用明显遏制了程序的使用。如果一个非常有用的程序是专属的,那么使用它的人会少得多。显而易见,一个程序对社会全部的贡献因为有了所有者而降低了。每个潜在的用户,面对着须付费才能使用,也许选择了付费,或者也许选择了放弃使用该程序。当用户选择付费时,双方转移的财富总和为零。但每当有人选择了放弃使用该程序时,那个人受到伤害而其他的人也得不到好处。负数和零的总和一定还是负数。但是这并没有减少开发程序的工作量。结果,以小时计的用户交付工作满意度来看,整个过程的效率降低了。这反映了程序拷贝和汽车、椅子或三明治之间重大的区别。在科幻小说之外,没有可以复制实物的机器。但是程序容易复制;任何人可以不费力气地想复制多少就复制多少。这对实物来说不成立,因为物质是守恒的:每个新复制品都要和原物一样用原料如法泡制。对于实物来说,遏制它们的使用是有意义的,因为买的东西少就可以减少制作它们所需的原料和工作。的确,通常还有初始成本以及贯穿整个生产过程的开发成本。但是只要生产的边际成本显著,增加一份开发成本不会造成质的区别。而且这也不需要限制普通使用者的自由。然而,对本来应该免费的东西收费是质的改变。对软件发行的集中收费变成了一个强力的遏制因素。进一步讲,现在实行的集中生产作为发送软件拷贝的方式来说是低效的。这个系统涉及给磁盘或磁带加上多余的包装,大量地运往世界各地,以及为销售而储备。这个成本是一项经营开支;事实上,这是软件拥有所有者带来的浪费之一。
破坏社会团结假设你和你的邻居都发现运行某个程序会很有用。从道德上为你的邻居考虑,你应该觉得合适的处理会使你们两个人都可以使用这个程序。一个只允许你们中的一个使用该程序而限制另一个人的建议会造成关系不和;你和你的邻居都应觉得无法接受。签署一个典型的软件许可协议就意味著背叛了邻居:“我承诺剥夺我邻居的使用权,以便我能拥有一份自己的拷贝。”如此选择的人们,由于降低了帮助邻居的重要性,会感到自我评价的心理压力—因此公德精神深受折磨。这是一种和限制程序使用而造成的物质伤害相关联的心理伤害。许多用户在不知不觉中认识到拒绝分享的错误,所以他们决定不顾许可证和法律而分享程序。但他们经常因此而承担负罪感。他们知道要成为好地邻居就要违反法律,但他们仍然要考虑法律的威慑力,进而他们的结论是做一个好邻居(他们就是)是件坏的或可耻的事。这也是一种心理伤害,但人们可以用判定这些许可证和法律毫无道德力量而摆脱这种伤害。程序员也承受着精神伤害,因为他们知道许多用户将不被允许使用他们的作品。这导致了一种愤世嫉俗和否认的态度。也许一个程序员会热情地叙述一个她发现在技术上令人兴奋的作品;然后当被问到,“我能使用吗?”,她的头垂下来,并承认答案是否定的。为避免感到灰心丧气,她要么在大多数时候忽视此事,要么为了使它的重要性减到最小而采取愤世嫉俗的姿态。从里根时代开始,美国最缺的不是技术创新,而是为公众利益共同工作的意愿。以牺牲后者为代价来鼓励前者毫无道理。
阻碍程序的定制化第二级物质危害是不能修改程序。软件容易修改是其胜过以往技术的伟大的优点之一。但大多数的商业软件不能修改,即使在你购买以后也不行。你只能使用或放弃,它就像一个黑盒子—就这么多。一个你可以运行的程序由一系列含义隐晦的数字组成。没有人能够轻易地改变这些数字来使程序完成其他不同的工作,甚至一个优秀的程序员也不行。程序员通常编写程序的“源码”,它是用诸如Fortran或C这样的编程语言写成的。它为数据和代码使用可读的名字,用诸如‘+’表示加法,‘-’表示减法这样的符号来代表操作。这样的设计帮助程序员阅读并修改程序。举个例子,有一个在平面上计算两点间距离的程序: float distance (p0, p1) struct point p0, p1; { float xdist = p1.x - p0.x; float ydist = p1.y - p0.y; return sqrt (xdist * xdist + ydist * ydist); }这个源代码的准确意思不是重点;重点在于它看起来就像是代数,一个懂这个编程语言的人能够清楚明白地看出该代码的意思。反过来,在我通常使用的计算机上,该程序的可执行形式如下: 1314258944 -232267772 -231844864 1634862 1411907592 -231844736 2159150 1420296208 -234880989 -234879837 -234879966 -232295424 1644167167 -3214848 1090581031 1962942495 572518958 -803143692 1314803317源码对程序的每个使用者来说都很有用(至少有可能)。但大多数使用者不被允许拥有源码的拷贝。通常专属程序的源码被其所有者保密,以免其他任何人从中学习。使用者得到的仅仅是计算机会执行的一串不可理解的数字。这就是说只有程序的所有者才可以修改程序。一次,一个朋友告诉我她曾经在一家银行作了六个月的程序员,编写一个和某商业程序相似的程序。她相信,如果能得到那个商业程序的源码,就很容易修改以满足他们的需要。这家银行愿意购买,但没有被允许—源码是保密的。所以她不得不做了六个月的编写工作,该工作计入国民生产总值(GNP),但实际上却是浪费。MIT人工智能实验室在1977年左右收到施乐公司赠送的一台图形打印机。它由自由软件驱动,我们为其增加了许多方便的功能。例如,软件可以在打印结束后立即通知用户。打印机出毛病的时候,诸如卡纸或缺纸,软件也会立即通知所有排队等候打印的用户。这些功能促进了平稳的操作。后来施乐又给了人工智能实验室一台更新更快的打印机,它是第一代激光打印机机之一。驱动它的是专属软件,运行在一台单独的专用计算机上,所以我们无法增加任何我们喜欢的功能。我们可以设法在发送打印任务到专用计算机后收到通知,但不能在打印任务结束时(而延迟通常是相当大的)收到通知。没办法知道打印任务何时完成;你只能去猜。而且发生卡纸了也没人被通知,所以这台打印机经常无人修复达一小时之久。人工智能实验室的系统程序员有能力修复这些问题,可能做得和该程序的原始作者一样好。施乐对修复问题不感兴趣,并选择了不让我们修,所以我们被迫接受这些问题,这些问题一直没有得到解决。大多数优秀程序员曾经历过这种挫折。银行可以担负得起从零做起写一个新程序来解决问题,但一个典型的用户,无论有多高的技能,只能放弃。放弃造成了心理伤害—对独立的精神。如果你不能重新布置房间来满足你的需要,那么住在这样的房子里令人沮丧。这导致了放弃和泄气,并可能蔓延开来影响一个人生活的其他方面。有这种感觉的人不会快乐,而且工作也做不好。如果食谱也像软件一样被隐藏,想像一下将会发生什么。你可能说,“我怎么修改食谱才能不放盐?”,厨师长会回答,“你怎么敢侮辱我的食谱,它是我智力和味觉的产物,你怎么能试图擅自修改呢?你没有决断力改变我的食谱,也不能让它改了之后还能正常!”“但是我的医生不允许我吃盐!我该怎么办?你会为了我而不放盐吗?”“我会很高兴去做;我的费用是区区五万美元。”因为所有者垄断了修改权,费用通常会很高。“然而,现在我没有时间。我忙着为海军部设计一个新配方的舰用饼干。我大约两年后才可能有空帮你弄。”
阻碍软件开发第三级的物质危害影响软件开发。软件开发过去常常是一个演化的过程,就是说,一个人应该拿一个现有的程序并重写其相关部分来增加新功能,然后另一个人重写另一部分来增加另一个功能;有时,这种演化会持续超过二十年之久。同时,该程序的有些部分会被“拆解”并发端成为新的程序。程序所有者的存在阻止这种演化,使得开发程序必须从零开始。这也阻止了新的从业者从现有程序中学习有用的技术、甚至包括学习如何构造大型程序。程序所有者还阻碍教育。我遇到过计算机科学方面的聪明学生,有些从来没有见过大程序的源码。也许他们精通写小程序,但如果他们不能看到别人是如何做到的,那么他们就不能开始学习写大程序的不同技术。在任何知识领域,一个人可以站到其他人的肩膀上来达到更大的高度。但在软件领域,这个通常不再成立—你只能站在你自己的公司其他人的肩膀上。相关的心理伤害影响科学合作的精神,而这种合作以前是很强壮的,科学家们甚至在两国开战时也会合作。本着这种精神,日本海洋学家把他们在太平洋一个小岛上的实验室丢弃给进入的美国海军时,小心地保护其研究成果,并留下字条要海军好好爱护这些成果。利益冲突现在破坏了国际冲突能保护的。当今,许多领域的科学家们不在论文中公布足够他人复制试验的信息。他们公布的内容只够让读者为他们的所做而赞叹。在计算机科学方面无疑就是这样,报告里提及的程序的源码通常是秘密。
限制分享的方式无关紧要我一直在讨论阻止人们复制、修改和构建程序造成的影响。我并没有具体指出这种阻碍是如何实行的,因为那不影响结论。无论是拷贝保护、版权、许可证、加密、只读内存卡,还是硬件序列号,只要它成功地阻止使用,它就构成了危害。用户会觉得其中有些方法比另外一些更令人讨厌。我认为最遭恨的方法是那些达到目的的方法。
软件应该是自由的我已经展示了有所有者的程序—拥有限制修改和复制的权力—是何等的碍事。其负面影响是广泛而重要的。社会不该有程序的所有者应该是顺理成章。另一种理解这个道理的方法是社会需要的是自由软件,而专属软件是糟糕的代用品。鼓励代用品不是我们获取所需的合理方式。Vaclav Havel建议我们“为有益之事而工作,而不是只为能够成功而工作。”制作专属软件的商业公司有它自己狭隘意义的成功,但那不是对社会有益的事。
人们为什么要开发软件如果作为鼓励人们开发软件的方法,我们废除版权,那么一开始开发的软件会较少,但这些软件会更有用。总体上用户的满意度会不会更少不清楚;但如果是,或者我们就是希望增加满意度,还有其他的办法鼓励开发,正像除了收费站还有其他方法为道路筹集资金一样。在我谈论如何做之前,我想先问多少人为的鼓励是真正必须的。
编程是一种乐趣有一些工程,除了为钱很少会开工;比如公路建设。在一些研究和艺术领域,人们没有什么机会致富,人们加入其中是因它们的魅力或是因为认识到它们对社会的价值。比如数理逻辑、古典音乐和考古学;和工作阶级的政治组织。人们竞争,与惨痛相比更多的是忧伤,为的是一些有资助的职位,而这些职位的待遇并不丰厚。如果他们能够承担,他们甚至会用金钱来换取这些工作机会。如果开始提供致富的可能,这样的领域可以一夜之间发生自我改变。当一个人变得富有,其他人也要求相同的机会。很快地,也许所有人都会要求对他们过去为了消遣而做的工作支付大笔的金钱。再过几年,每个和此领域相关的人都会嘲笑没有巨额经济回报而去完成工作的想法。他们会建议社会规划者确保回报可得、指定特权、权力和必要的垄断。计算机编程领域在80年代就发生了这种变化。在70年代,关于“计算机瘾”的文章写道:用户们“在线上”而且都有每周一百美元的习惯。众所周知,人们常常因为太爱编程而导致婚姻破裂。而今天,除非有高额回报,否则没人会去编程,也是广为人知。人们已经忘记了过去的事。人们在某领域工作只是为了高额报酬这件事在某个时期发生,并不必然说明这会持续下去。如果社会提供动力,变革的力量也能反过去。如果致富变得不太可能,那么一段时间以后,当人们重新调整态度时,他们会再次因为有成就的喜悦而渴望在这个领域工作。当我们意识到答案和给他们一大笔钱无关的时候,“我们如何付钱给程序员?”这个问题就变成了一个较简单的问题了。简单的生活更容易养活。
为自由软件筹集资金付钱给程序员的团体不必都是软件机构。许多现有的其他机构都可以这样做。硬件制造商也发现支持软件开发很重要,即使他们不能控制软件的使用。1970年,因为硬件厂商没有想过限制软件,所以他们的软件大都是自由的。今天,他们日益增长的加入联盟的意愿说明他们意识到了拥有软件对他们来说并不是真正重要的事情。大学主导着许多软件项目。今天,他们经常会销售这些成果,但是在1970年代,他们不这样做。如果不允许大学出售软件,那他们还会开发自由软件吗?这些项目一样可以由那些现在在支持专属软件开发的国家基金和政府合同支持。大学研究员获得经费开发一个系统,开发到几乎完成,称之为“做完了”,然后开一家公司,在那儿他们真的完成该项目并使之可用,当今这种现象很普遍。有时他们宣称那个没完成的版本是“自由的”;如果他们毫无道德,他们会从大学获得专有许可证。这不是秘密;每个有牵连的人都公开承认。然而如果研究人员不受这些东西的诱惑,那么他们仍然会是在做他们的研究。编写自由软件的程序员们可以通过出售与软件相关的服务来谋生。我受雇要把GNU C编译器移植到新硬件,也受雇给GNU Emacs扩展一个用户界面。(一旦完成,我就把这些改进公开发布。)我也通过讲课获得报酬。我这样工作,但并非只有我一个人这样;现在有了一个成功的、不断成长的团体,它除此之外不做任何其他工作。有些公司也为GNU系统的自由软件提供商业支持。这是独立软件技术支持产业的开端—一种能变得相当大的产业,如果自由软件盛行的话。它为用户提供专属软件一般不会提供的选择权,除非你非常有钱。诸如自由软件基金会这样的新机构也会资助程序员。基金会的大部分资金来自邮购磁带的用户们。磁带上的软件是自由的,这就意味著每个用户都有复制和修改的自由,但尽管如此许多人还是花钱购买拷贝。(请记得“自由软件”中的Free代表自由,而不是价格。)一些已经拥有拷贝的用户又定购了磁带,作为一种他们觉得是我们应得的贡献。自由软件基金会还收到计算机制造商为数颇大的捐款。自由软件基金会是一个慈善团体,它的收入用来雇佣尽可能多的程序员。如果要是开了公司,以相同的费用发行相同的自由软件,那么现在它的创始人会过上非常好的生活。因为自由软件基金会是一个慈善团体,程序员们会为基金会工作,而不计较赚的钱是他们在其他地方工作的一半。他们这样做是因为我们没有官僚制度,并且他们感到满足,因为知道他们的作品会被不加以阻碍地使用。最主要的是,他们这样做是因为编程是一种乐趣。此外,志愿者已经为我们写了许多有用的程序。(最近技术作家都开始成了志愿者。)这说明编程与音乐和艺术一样,的确是所有领域里最迷人的那些。我们不必担心没人愿意编程。
使用者应感激开发者什么?软件用户有充分的理由应该感到在道德上有义务去做点贡献来支持软件。自由软件的开发者为用户们的活动作出了贡献,从长远利益来说,用户们给他们资助让他们继续发展,这是公平的。然而,这不适用于专属软件的开发者,因为阻挠应受到惩罚而非奖赏。于是我们得到一个矛盾的结论:有用软件的开发者有资格得到用户们的支持,但任何试图将这个道德上的义务变为需求的企图却破坏了该义务的基础。开发者要么应得到报酬,要么可以请求报酬,但不可兼而有之。我相信,面对这样的矛盾,一个有道德的开发人员必须有所行动以便获得报酬,但也应该请求用户们给予自愿的捐助。最终,用户们将学会毫无强迫地支持开发人员,就像他们支持公众广播电台和电视台那样。
软件生产力是什么?如果软件是自由的,仍然会有程序员,但也许更少。这对社会有害吗?不一定。今天发达国家的农民人数比1900年少,但我们认为这并没给社会带来危害,因为少数的人比起过去的许多人给消费者提供了更多的食物。我们称其为生产力的提高。自由软件会需要少得多的程序员来满足这个需要,由于以下几个方面的软件生产力提高:
[*]开发完成的程序被广泛使用。
[*]不必从头做起而修改现有程序即可定制的能力。
[*]程序员的教育水平更高。
[*]避免了重复的开发工作。
因为这样会导致雇佣较少的程序员,那些反对合作的人实际上是在反对生产力提高。虽然这些人通常还接受软件业应该提高生产力这一广为坚持的信条。这怎么解释呢?“软件生产力”可以代表两个不同的东西:一切软件开发的总体生产力或单独某个项目的生产力。总体生产力是社会需要提高的,而最最直接的方法莫过于清除会降低生产力、反对合作的人为障碍。但“软件生产力”领域的研究人员却专注于此术语的次要的、局限的含义,即提高生存力需要艰难的技术进步。
竞争是必然吗?人们试图竞争,超过他们在社会上的竞争对手,这是必然的吗?也许是吧。但竞争本身不是坏事;有害的事情是斗争。有许多竞争的方法。竞争包括试图完成更多,也包括比别人做得更好。有个例子,过去在编程高手之间存在竞争—比谁能让计算机做最令人惊奇的事情,比谁能编出最短最快的程序来完成指定的任务。这种竞争可以使大家受益,只要保持着光明正大的精神。建设性的竞争是一种足以激励人们努力付出的竞争。一些人争著要成为游遍世界各国的第一人;一些甚至不惜花费重金来完成使命。但他们没有贿赂船长以使对手搁浅在无人居住的岛屿上。他们愿意让最优秀的人获胜。当竞争者开始互相阻止而不是使他们自身进步的时候,竞争就变成斗争了—此时“让最优秀的人获胜”就让位于“让我赢,不管是否最优秀。”专属软件是有害的,并非因为它是一种竞争形式,而是因为它是与社会公民为敌的斗争形式。商业竞争不一定就是斗争。例如,两家杂货店相互竞争,全部的努力就是要改善他们自己的经营,而不是阴谋挫败对方。但这并非信守商业道德的特别保证;相反,没有硝烟的商业战争却几乎不留余地。不是所有的商业领域都享有这个特征。保留能使大家进步的信息就是一种斗争的形式。商业理想没有使人们做好准备来抵御为竞争而斗争的诱惑。某些形式的斗争已经被反托拉斯法1所禁止,广告法就是这样,还有很多,但执行经理们却创造了其他没有被专门禁止的斗争形式,而不是把这归纳为普遍拒绝斗争的原则。社会资源被浪费在类似经济派系的内战上。
“你为什么不去俄罗斯?”在美国,除了放任自由的极端形式,其他任何理念的拥护者都经常听到这样的指责。例如,国家健康保障系统的支持者就被贴上这样的反派标签,就像在所有自由世界的其他工业国家一样。公众支持艺术的拥护者也被这样反对,也和在其他世界发达国家一样。在美国,这种公民有义务对公众做贡献的思想就被看成是共产主义。但这些想法是多么相似呀?苏联实行的共产主义是一个对所有活动实行严密的中央控制的体系,据说是为了共同利益,但实际上是为了共产党的利益。在那里,印刷机被严格监管,以防止非法的印刷。美国的软件版权体系对程序的发布实行了中心控制,并且用自动复制保护机制来保护复制设备以防止非法复制。与之相反,我正在努力建立一个人们可以自由决定自己行为的体系;特别是,自由地帮助邻居,自由地改变和改善他们的日常生活用具。这是一个建立在志愿合作和权力下放之上的体系。因此,如果我们要从与俄国共产主义相似的角度出发来判断的话,软件所有者就是共产主义者。
假设前提的问题在这篇文章中,我假设了软件的用户和软件的作者,甚至是和软件作者的雇主一样重要。换句话说,当我们判断哪个行动步骤最好的时候,他们的利益和需求的分量是平等的。这个假设并不被普遍认同。许多人坚持认为作者的雇主从根本上比其他任何人都更重要。例如,他们说软件具有所有者的目的就是给其作者的雇主应得的优势—无论这会如何影响公众。证明这些假设正确与否是毫无用处的。证明需要同样的假设。所以大多数我必须说的话仅仅是讲给同意我所用假设或者至少对其结果感兴趣的人的。对于那些认为所有者比其他任何人更重要的人来说,这篇文章简直是不切题的。但为什么大量的美国人接受了把某些人提高到比任何其他人都重要的地位上这个假设呢?部分原因是该假设是美国社会传统法律的一部分这一信条。一些人认为怀疑这个假设就是挑战社会基础。对这些人来说,重要的是了解这个假设并不是我们法律传统的一部分。从来都不是。因此,宪法规定版权的目的是“促进科学和有用艺术的进步。”最高法院详细解释了这一点,在福克斯影业对Doyal的案件中宣布“美国的唯一利益和颁发【版权】垄断的根本目的在于大众从作者的劳动中获得的普遍利益。”我们不需要同意宪法或最高法院。(有一度,他们都宽容了奴隶制。)所以他们的立场并没有证明所有者至上的假设是不正确的。但我希望,大家意识到所有者至上是一种激进的右翼假设,而不是传统以来就被认可的假设,这就会削弱该假设的吸引力。
结论我们愿意想像我们的社会鼓励邻里互助;但每次我们奖励那些阻挠的人,或者羡慕他们以这种方式获得的财富,我们就是发出错误的信息。软件囤积是一种为了个人所得而漠视社会福利的普遍意愿。从Ronald Reagan到Dick Cheney,从Exxon到Enron,从破产的银行到失败的学校都可以找到这种漠视的痕迹。我们可以用无家可归的人口和罪犯的数量来衡量。这种反社会的精神会自我传播,因为我们看到的其他人不帮助我们的事越多,那么我们就越觉得帮助他们越无意义。这样,我们的社会就会溃变为混乱不堪之丛林。如果我们不想生活在丛林之中,那么我们就必须改变态度。我们必须开始发出这样的信息:好公民应该在适当的时候互相合作,而不是由掠夺他人而获得成功。我希望自由软件运动会有助于此:至少在一个地区,我们将用一个更为有效的,鼓励并且运行在志愿合作上的系统来取代混乱不堪的丛林。
脚注
[*]“free software”里面“free”这个词表示自由,而不是价格;购买自由软件拷贝的花费也许为零,或者不多,或者(有少数情况)相当多。
[*]污染和交通阻塞的问题不会改变这个结论。如果我们希望使开车更贵来减少常规的行驶,那么用收费站来实现是不利的,因为这会同时导致污染和阻塞。向汽油征税会好得多。同样,通过限制最高速度来实现提高安全性的愿望也是不切题的;对于任意给定的速度限制,免费公路避免了停顿和延迟从而加快了平均速度。
[*]有人可能把特殊计算机程序看作不该得到的有害事物,就像Lotus Marketplace的个人信息数据库一样,因公众的反对而退出市场。我说的大部分话都不适用于这种情况,但有一种争论,说在有所有者就可以使这种程序不大可能得到,这毫无道理。如果一个程序的作用被认为是破坏性的,就像有人希望的那样,那么其所有者是不会让它完全得不到的。
译注
[*]antitrust law,反托拉斯法,又称反垄断法。
https://www.gnu.org/graphics/fsf-logo-notext-small.png“自由软件基金会(FSF)是一个非盈利组织。我们的使命是在全球范围内促进计算机用户的自由。我们捍卫所有软件用户的权利。”
本文发表于自由软件,自由社会:Richard M. Stallman选集
页:
[1]