HOME > 研究成果 > 论文
论文 paper
开放源运动:网络社区作为软件生产者的创新和贡献
杨剑 2012-01-10
源代码 信息技术 网络时代
简介
  开放源运动主张软件源代码开放,维护全球软件编程人员和用户使用、改编、发行软件的权利,反对私有版权制度。开放源作为一个网络社区在软件研发和生产组织形式方面有非常独特的表现,它反映出网络时代用户创新的特点,对目前占主流的知识产权制度提出了挑战。反垄断企业以及发展中国家的配合和响应使开放源软件具备了与专有软件生产者竞争的能力。
正文
  在信息社会,软件不仅在技术层面作为工具存在,同时在一定程度上决定着信息技术市场的游戏规则。开放源代码运动在软件生产和流通领域率先进行用户创新,也引发了与专有软件生产商之间的争论和竞争。
        本文拟从分析开放源代码运动与专有软件生产企业的主张之争和市场之争入手,比较开放源软件和专有软件生产组织过程的差异,研究开放源社区在纳入新生产要素方面的做法,考察开放源软件生产对社会福利的贡献和对创新的激励作用,通过研究开放源运动重新审视知识产权制度的经济导向。

一、专有软件与开放源软件之争
        软件决定着计算机及其网络的工作内容和程序。用编程语言写成的文本称作源代码。依发布方式软件可分为两大类,一类是专有软件(Proprietary Software)。它只以二进制文档发布,源码被视作商业机密和私有产权。专有软件的典型代表是微软公司的Windows操作系统;另一类是自由和开放源代码软件,或简称为开放源(open source)软件,它向软件编程人员和公众公开源码。其典型代表是Linux操作系统。开放源软件已被广泛使用,终端用户在不自觉中已大量使用开放源软件。
        专有软件拥护者认为,保护源代码是对创新的保护。知识创新需要大量的资金和智力的投入。只有保护源码才能保证企业的收益,只有收益才能保证研发者持续创新。
        主张开放源代码的一些软件工程师发起了一场以网络为平台,以保护用户接触源码的权利,自由共享信息,反对专有软件垄断为主题的网络社区运动。该运动主张用户既应获得二进制文档,也应获得可供检查、修改和重新编写新的目标码的源码。源码必须同软件一起分发或以不超过分发费用提供;任何人可免费再发布软件,不必向作者付版权费或特许费;任何人可修改软件或从中衍生出其他软件,并按照同样的条件分发改进后的软件。
        二者在知识的社会公益性问题上态度对立。本文认为要讨论二者争论的是非,首先要看开放源与专有软件生产公司之间谁对社会福利积累以及技术创新方面有更大的贡献。另外要看那一方的生产方式更加能利用网络社会所提供的便利,更能动员储存在社会中富余的生产能力为社会提供更便宜、更多样化的产品。而且社会经济制度应当对这种争论后面所反映的经济发展趋势作出相应的调整。
二、新型生产组织形式对现代生产制度的贡献
        开放源软件生产者群体是一个在网络条件下形成的生产组织。无数分布于世界不曾见面的软件编程人员,自愿聚集在互联网上无偿地参与软件设计、生产和完善。这一网络社区没有严格的层级结构,也没有绝对的权威,以一种松散的、非正式的组织召集数以千计的软件高手进行软件产品开发,对现代生产制度作出了贡献。
        1.两类软件制作流程的比较
        开放源运动的领袖之一埃瑞克•雷芒( Eric Raymond)在其著作《大教堂与市集》(The Cathedral and the Bazaar)中阐述了两类软件在生产模式上的不同:“我认为这是建造教堂和集市模式的根本区别,在类似建造教堂的编程模式看来,程序中的错误和问题隐藏很深,难以被发现。费时数月进行筛查,也不能保证错误和问题都被挑出来。因此教堂式的软件开发需要很长的发布周期,即使这样用户也不可避免地因为没有得到完美的版本而失望。以市集模式来看,软件的错误和问题变得浅显了。当上千个热切的协作开发者对新发布软件进行测试的时候,错误很快被发现,所以我们经常以发布来获得更多的纠正。 ”
        (1)大教堂式的多层级单向流程模型
        对雷芒的描述做一个流程模型化处理后,就可发现二者之间的不同。专有软件是在封闭体系中完成的,发布之前要经历可行性研究与计划、需求分析、总体设计、数据和结构设计、过程设计、编码实现、测试和调试等阶段,每一个阶段都需评审和反馈。(见图1)阶段之间的重复反馈和循环通常难以实现。
        这种多层级单向的流程要确保软件的各项功能得以实现且没有严重错误。版本一旦发布进入市场,真正意义上的修改和完善只能等到下一次版本升级时才可能完成。
        (2)集市式的增量开发模型
        开放源软件采用的是增量开发模型。该模型以一种渐进拓展的方式展开,可以用一个螺旋扩展图形加以描述(如图2所示)。开发从建立原型开始,经历方案征集、编码集成、开发计划制定、用户使用并测试、风险分析,然后进入新一轮的原型再造,不断完善。
        这一流程可以最大限度地将存在于世界各地的优秀编程人员的时间和智慧以最小的成本纳入到软件生产之中;将使用和测试结合起来,增加新功能并减少软件的缺陷。
图2.开放源软件增量开发模型示意图(作者自绘)
        本文结合托瓦兹(Linus Benedict Torvalds)发明Linux操作系统的经历来加以说明。托瓦兹将他个人最初的创意软件以开放源的方式挂到网上后,感兴趣的用户开始使用,进行测试并找出问题,一些用户开始参与软件的完善,不断以较小的容易实现的增量进行扩展,在既有的原型上添加新功能。在下一轮循环中,一些积极用户成了项目核心成员。
        软件开发者必须关心客户需求、使用环境、时间、成本等因素。 教堂式的软件开发必须在一个研发周期内由有限的研发和测试人员开发出软件功能并将所有的风险找出并解决,这是不可能的任务。在开放源的社区中,软件的风险分析是在用户中完成的,在实际用户环境中由用户发现并由用户解决的。用户的数量是远远超过专业研发人员,开放源的软件永远处于不断完善之中。
        2.网络社区软件生产的组织创新
        按常规的生产组织理论,开发高科技产品,不仅需要高智力的人力资本,还需要强有力的组织管理。开放源软件采用的是松散的、网络社区式的组织方式,同样保证了密切合作,保证了创新。卡斯特(Manuel Castells)曾指出,“历史上第一次,经济组织的基本单位不是一个主体,也不是集体,而是网络,是由许多主体及组织构成,并且不断修正以成为能够适应支持环境与市场结构的网络。” 这种网络社区式的生产组织是一个新的经济现象。
        开放源项目依从的是一种合作创新、网络式的组织模式。互联网为其提供了最适合的生存空间和交流通道。Linux操作系统的独特发展过程就是一个成功典范。在这种合作创新网络中,一群志趣相投的程序编制人员,跨越了国家、民族、文化的障碍自愿结合,开发开放源软件。他们为了解决共同的程序难题相互沟通、分享知识。 其组织形式扁平化,组织流程的安排更注重效率,它使以企业实体为研发单位的生产方式受到了挑战。
        企业通常采用金字塔式的管理,自上而下分别是董事会、总经理、部门经理、主管、专业人员等。开放源项目成员之间组成了一种同心圆的管理模式。 圆心是软件研发管理层,主要负责软件发展方向、调整和更新等事项;内层圆则是递交设计、修订、兼容等软件编码的编程人员,他们让软件更加完善、安全和适用;外层圆则是负责测试的用户。成功的开放源项目群体具备以下特征:能者领衔、协调一致、管理高度透明。核心成员间在智慧上的竞争激发了创意,提高了工作节奏。在著名的Apache项目中,每一个人都可能从用户变成研发参与者,又从研发者变成项目管理成员,最终还可能成为Apache软件基金会的成员。这对于一个编程人员来说是一个巨大的荣耀。
        有学者将这种创新归纳为“应用创新”。应用创新就是以用户为中心,置身用户的应用环境,通过研发人员与用户的互动挖掘需求,通过用户参与创意到技术研发与验证的全过程,发现新需求,通过各种创新的技术与产品,推动科技创新。

三、源代码开放是激励创新还是摧毁创新?
        微软公司指责开放源软件是知识产权的摧毁者。2001年时任微软操作系统部执行长的Jim Allchin 称:“到处散布软件程序源代码,扼杀了软件开发的创意,压抑了创新。开放源代码运动将会终结知识产权以及研发的动机,是知识产权的摧毁者。” 而开放源运动的领袖们也毫不隐讳,他们的理念与以保护专有软件的知识产权体系格格不入。
        判断一种生产组织形式和分配制度是激励创新还是摧毁创新,应当要回答以下几个问题。(1) 在无偿使用某类产品的情况普遍存在的情况下,市场是否会失灵?(2)在此经济生态中,技术更新是加快了还是延迟了?具有创新能力的人是越来越多还是越来越少?(3)该经济生态是否促进竞争,在扩大社会总福利方面是否有进步?
        1.开放源社区让生产者有了新形态的收益和研发的动力
        在传统模式下,生产者只能通过消费者购买来判断出消费者的偏好,对产品进行改进;如果消费者都免费搭便车,生产者将失去投资的动力,最后导致市场失灵。传统的模式下研发具有投资的风险,由于对市场偏好判断错误,巨大的投资可能血本无归。
        在网络条件下,实验室没有了边界,用户可以通过源代码和开放平台成为共同研发者和测试员。核心研发者对于用户偏好的掌握是及时的,产品对偏好的反应也是快速的。开放源软件研发过程中,参与者所得到的回报和威望不是由其控制流程的地位决定的,而是由其贡献的时间和技术成果决定的。 研发者不是通过拥有技术的专有权利而获得经济收入,而是通过使用更高、更新的技术获得收益。一方的研发活动同时增加了他人的使用收益和技术能力。 电子技术和产品的便宜和可获得性,也使得社会成员的学习成本大大下降。
        2.开放源社区将网络时代新的生产要素纳入生产体系
        熊彼特指出:创新是指将一种新的生产要素和生产条件的新结合引入生产体系。也就是说,如果一种模式能将更多的新生产要素纳入,能更有效地利用新的生产条件,那么这一模式就代表着创新发展的方向。
        知识和智慧是知识经济最重要的生产要素,在软件生产方面更是如此。开放源模式适应了知识社会形态的创新模式,借助信息技术创造的网络空间,将存在于网络终端无数拥有创新智慧的人力纳入到生产体系之中。用户不再是科技创新的被动接受者,而可以在网络条件下直接参加创新。开放源模式具有用户创新、应用创新、开放创新、共同创新的特点,更符合普适计算时代需求。随时随地的在线连接和数据处理与共享的空间已经形成,技术和应用之间可以克服时空的限制不间断地互动达到高度的融合促进社会的快速发展。
        在信息时代之前,科技发展与应用反馈之间存在着时间上的延迟。新型产品在交付使用后,如有问题,用户要有很长时间的等待才会有升级型号的出台。用户在使用中的创新容易碰到技术的极限。在开放源社区中,技术创新不断接受应用创新的信息交换而提升,而应用创新的因为技术天花板不断上升而可以在新的平台上进行应用创新。
        专有软件人为地建构了一个知识壁垒,将许多智慧排斥在自己的软件平台之外。微软在其全球各地的研发中心人员的总数无法同开放源社区的优质编程人员的数量相比。专有软件未能利用科技对生产要素的积聚能力,未能利用网络空间所提供的利用用户对研发进行快速测试、反馈并改进的潜力,使其创新停留在较为传统的模式上,并且在知识产权制度的保护下,以编码为围墙来巩固自己的优势地位。
        3.开放源社区成为软件创新人才培养的集聚地
        网络的存在使知识扩散的成本下降,分散的群体可以以极低的成本便捷地获得学习机会。开放源社区凭借网络和计算机技术可以大量储存社区成员无偿公开的内容,并且以自由下载的方式让他人获取并参与讨论。通过提供编码、软件工具以及前人研究的基础,为其成员提供有效的学习平台。用户在开发和推广中相互帮助,在解决共同的问题过程中不断讨论和尝试,增加了每个参与者的技能和水平。开放源社区孵化了许多创新人才,为社会培养了高素质的专业化劳动力。
        Hemetsberger和Reinhardt通过对开放源社区K Desktop Environment(KDE)进行实证研究得出结论,开放源网络技术促进了个人的学习和集体知识和创新的积累。 互联网起到档案参考和技术积蓄的作用,社区用户可以同时在“网络空间”中交流、学习、查阅。公开源代码和团体交流记录使得新入者可以轻松地进行体验式学习,通过参与交谈或网上提问寻求方法来快速解决自己的问题。新的创意会立即引起激烈讨论,讨论加深了群体对问题的认识,也激发了群体应对挑战的兴趣。众多的学习者通过体验和观察形成观念,并将这些体验和观察逻辑地建构在完善的理论和模型之中,知识体系由此确立。。开放源社区变成了一个训练基地(training site),将许多原本只能囿身为用户的有才智之人训练成专业化人才。
        4.研发方案的取舍过程确保创新不被人为压制
        开放源软件研发常出现“分叉”过程(Forking)。 当两个主要研发者对于项目的发展方向无法达成一致时,就会有源于同一基础的两个项目出现。在专有软件研发中,如出现类似情况,最终会否决其中之一。开放源软件的开发环境更加民主,分叉后的开放源项目,一个沿着原先设计的路线发展,另外的则变成新的项目。核心成员也由此变成一个新项目的领导者、管理者和协调者。许多开放源软件包含数个子项目。这种研发模式保证了软件产品的不断创新和多样性,也给用户更多的选择自由。在Linux家族中就有很多特点各异的Linux软件,注重安全的Linux被用来配合网络服务器,而方便安装的Linux被用来配合桌面系统。最终形成了相互关联、各自发展的一种特殊生态圈。 开放源社区为每一种方案都提供了发展的可能,创新不会被人为压制。

四、开放源对现代知识产权制度的挑战
        自由软件的发起人斯托曼(Richard M. Stallman) 指出:“数字信息技术为世界做出了贡献,使得信息的复制和修改变得很容易。计算机可以帮助我们实现这一目的。可有些人并不希望如此。版权体系使得软件有了所有者,这些所有者中的主要目的是为了阻碍公众从软件中获益。” 
        1. Copyright 还是 copyleft?
        开放源和专有软件在对源代码是免费信息还是商业信息有分歧。基欧汉和约瑟夫•奈将信息流动分为三类:免费信息、商业信息和战略信息。 开放源认为软件及其源代码是属于全人类的科学信息,软件应当在发明者和用户间或者用户之间自由流动;而专有软件则认为软件应当在产权规范之下以交易的方式流通,而源代码则作为商业秘密不予流通。因此双方在对待相关版权的法律制度上就产生了分歧。斯托曼在一封给软件用户的信中写道:“应当由谁来控制你们所使用的编码,是用户还是几个少数软件精英。我们相信:用户,只有用户,才应当是软件权力的拥有者。”
        开放源运动以“版权”﹝Copyright﹞反向含意另铸新词Copyleft。copyright的概念是为了保护创作者的权益,限制他人任意使用创作物的自由,Copyleft则是要保护他人任意使用创作物的自由。以Copyleft发布的作品使用的是另一种版权限制方式,鼓励创作者无偿公开智慧和知识,保障任何人都拥有对该作品及其衍生品的使用、修改和重新发布的自由和权利,但前提是这些发布条款不能被改变。也就是说,使用者应当在其增修的软件发布时仍然采用这种无偿回馈社会的规则。
        2. 市场、企业和发展中国家对开放源创新的响应
        市场响应和对社会总福利的贡献是衡量一个经济模式是否值得政策鼓励的重要标准。开放源软件获得的市场响应越来越显著,它为一些信息技术企业打破垄断、展开竞争提供了巨大的支撑,也为发展中国家提供了发展机会。同样,中间用户和发展中国家为开放源软件提供了巨大的市场需求。
        全球许多知名企业如Sun、Intel、IBM、HP、Informix、Oracle、Sybase、CA、Apple、Netscape、Compaq、Dell等都在支持Linux免费版本。根据Netcraft网站的调查,在2011年1月全球有59.13% 的网络服务器使用的是Apache应用程序,而使用微软的网络服务器只有21.00%。 许多企业愿意以开放源软件来组合他们的操作系统和应用系统。他们通过提供支持服务(Support Service)来获取市场份额和用户基数,在打破专有软件的垄断地位的同时帮助开放源软件的发展。
        苹果公司新产品的操作系统就包括了对开放源创新方式的吸取,让用户参与了创新。 在其官方网站上,苹果自豪地宣称自己为第一个将开放源作为其软件战略中关键部分的大公司。苹果公司使用开放源模式创建了强大可靠的操作系统MAC OS X,其核心部分上载网络供软件同行评判修改。苹果公司坚信这一软件的任何问题一旦出现都会被苹果和开放源社区立即捕获并加以修订。
        开放源软件也是发展中国家缩小数字鸿沟的合理选择。印度政府要求中央和各邦政府使用以Linux 为基础的产品。 中国的基础软件,包括操作系统、数据库、应用软件等,大多是基于开源软件发展起来的。开源软件促进了中国国产软件的发展,也保护了政府和用户的经济利益。 拉美国家将开放源软件作为信息化的重要工具。在阿根廷,42%的公司使用Linux操作系统。巴西前总统卢拉全面支持开放源软件的运用。 通过开放源社区,发展中国家以低成本获得先进的软件,培养了IT人才,积累了技术储备,同时也避免了关于侵犯知识产权的指控。
        3.现行知识产权制度未能解决的问题
        任何经济制度的建立必须支持创新、反对垄断,以最小的社会成本获取最大的社会福利。知识产权制度也应当如此。
        现行知识产权制度没有解决垄断问题。知识产权法的目的原本是确保创新投资的数量,但实际情况并非完全如此。垄断性公司利用专利和版权中的圈地效应,以与公共福利相对立的方式来使用知识产权。相关政策和法律没有鼓励和要求制造商将核心创新与非创新的专利相剥离。许多公司有意制造 “专利丛(patent thickets)”——一个专利的防御网络,借知识产权给他们的合法性进行诉讼威胁,阻止他人引入更强的创新。
        制度的缺陷给予制造商某种权利,他们以保护产权的名义对源码进行保密,设置技术限制,防止同行设计软件与专有软件兼容。专有软件的拥有者通过“合法地”控制编码,在本企业和其他企业之间建筑了一道篱藩,保证了产品的市场份额,从而保证了自己的垄断地位。
        实际上,开放源软件在创新的节奏方面超过了专有软件,并迫使专有软件加快升级的步伐,并有限度地开放源代码。 如果没有这一挑战,仅靠知识产权制度,居于垄断地位的软件企业会延缓软件升级,对软件缺陷滞后处理,会故意囤积版权和专利,最终将导致整个社会研发投资下降和创新的减少。
        现行知识产权制度未能有效地减少创新的社会成本。专有软件在利用知识产权保护自己的同时增加了社会创新的成本。用户和其他企业要想发明新的功能与用户既有的专有软件进行兼容,就有必要得到软件的源代码。因为微软锁定了全球众多的用户又不愿意开放源代码,为此全球有无数的软件人才为了生产小群体适应性产品,投入了大量的时间进行逆向解码过程,从社会福利角度看是对人力资源的极大浪费。将软件的源代码通过公开的形式对外发表可以引导研究人员进行前沿创新,有效地节约创新成本。而这些资源对于消费者和应有软件开发者来说意义重大,对于发展中国家利用信息技术促进经济发展意义重大。
        人们倾向于在使用中利用已有的产品进行改良,更经济地创造高性能产品。这种用户创新倾向有利于社会总福利的增加和总成本的降低。知识产权制度阻止消费者合法地复制作品,也阻止了用户对购买的产品进行创新性改良的可能。不论是从公平性还是从社会福利考虑,相关法律并没有体现出对创新资源和用户权利的有效保护。
        从社会成本比较来看,专有软件研发成本高,而开放源研发成本较低。研发成本包括支付给研发者的工资、房屋土地租赁、设备和能源供给以及相关的管理费用。为此专有软件要向消费者收取昂贵的费用。而开发同一水平和功能的开放源代码软件的社会成本是低廉的。创新需要投入,当这种社会投入被分担到无数愿意承担的积极参与者身上时,巨大的投入则变成许多微小的成本。另外,开放源运动使政府和市场都了解到,在软件制作领域,一种新的由网络社区而非政府提供公共品的方式已经出现。这无疑会给政府和纳税人减轻许多负担。
        现行知识产权制度未能呼应网络时代分散的创新。在网络时代,用户会成为重要的创新源,越来越多地成为制造商创新活动的替代或补充。这对于社会福利的增加无疑是利好。开源软件项目已经证明,在信息产品领域,用户能够为自己创造、生产、扩散、为他的用户提供现场支持、升级、使用复杂产品。
        网络时代用户的创新通常是分散的。在创新所需信息主要是以分散方式存在的条件下,将创新资源集中配置的模式会非常无效。知识产权制度也无法实现将资源有效地配置给“拥有正确信息的正确的人”——因为在他们开发出有价值的创新之前,很难知道他们在何处。开放源分散的创新是创新机会的民主化,创新资源配置已由用户分散分担,资源配置也由社区因项目自由组合。知识产权制度应当对这种分散的创新有所呼应。如果目前难以采取具体措施保护用户创新,至少不要以牺牲总体的创新发展为代价去保护垄断企业的利益。
        知识产权制度的广泛应用,说明社会有将创新作为私有产权加以保护的需要,这对企业和社会都有意义。但另一方面,开放源运动的兴起也说明被保护的私有产权在许多情况下被扩大了,违背了社会总体福利,侵犯了知识公共领域(common domain)。
五、小结和讨论
        开放源运动是一场由编程人员通过互联网发动的一场网络运动和经济秩序改革。它主张全球软件编程人员和用户使用、改编、发行软件的自由,反对私有版权制度对用户和编程人员权利的剥夺,得到了全球网络用户、反垄断企业以及发展中国家配合和响应。该运动的产生和发展对编码产权化制度形成了巨大冲击,对软件垄断企业构成了挑战。开放源运动作为一个网络社区已经成为参与信息技术空间权力与财富分配的重要行为体。它在软件生产过程中体现出的组织创新、技术创新以及对社会福利的贡献对目前占主流的知识产权制度提出了挑战。
        政府政策和立法往往会偏向支持制造商创新,这种现象需要改变。社会福利包括全球社会总福利和一个国家内的社会总福利。各国政府更关心的是本国的竞争力的维持以及本国社会福利的水平。各国政府,特别是技术发达国家政府面临着一种困境,一方面要为了国内公众利益,积极鼓励技术知识的无障碍扩散;另一方面为了国内企业在国际市场上的竞争,积极鼓励专有技术发展,控制技术知识的扩散。
        知识资源是一种正在国际权力竞争中发挥巨大作用的权力。从国际权力的视角来审视软件编码时,编码就不再是可以任意流动的科学知识,而是具有战略信息特点的商业信息。源代码的保密措施符合发达国家维持技术优势的需要。以往技术资源依附在单一技术产品上,比较容易将之控制在国家的或者企业的边界之内。而在全球化和网络时代,已经很难通过边界和进出口管制将技术和知识资源控制在”国界”之内。因此技术和知识的编码成为防止并控制资源向外流动的一种重要工具。正是因为这个原因,在技术大国的主导下,全球法律制度的平衡点并没有倾向开放源软件运动的主张。
        目前通行的知识产权制度已经在世界贸易机制中得到确定,那些信息技术的后起国家,也开始接受这样的游戏规则。然而以开放源运动为代表的开放、分散的创新正在冲击社会劳动力分工的主结构。开放源运动的发展能否促使知识产权制度中不合理的方面得到一些修正,起到真正保护核心创新的作用而将一些基础信息载体或平台免费由公众分享,这一点还值得人们继续观察。