[摘要] 本文以GNU/Linux为例讨论了源代码的内部结构在自由软件开发中所起的重要作用。为此,我们考虑了源代码的模块化属性。源代码的模块化将直接影响开发者是否参与对自由软件的开发。基于模块化的自由软件开发不仅实现了劳动的分工,同时也实现了劳动价值的分割,在自由软件的开发过程中较好地解决了搭便车问题。同时,模块化理论对我国发展软件产业也有一定的借鉴作用
一、引言
在计算机工业的初期,软件是硬件的附属品。企业只是卖硬件,随系统赠送软件。在这_时期,软件的设计思想,新的算法和软件的源代码在专家、学者和公司研究人员之间相互交流,促进了软件的迅速发展。但是,企业很快认识到软件的价值,对软件实施了版权控制,并限制了源代码的发布。同时,软件的开发方式也发生了变化,变成以商业企业为主体的封闭的开发模式。Unix系统是其中最典型的例子。在Unix发展的早期,源代码是可以自由拷贝的,每个人都可以借鉴他人的思想,以完善程序。但是,随着软件产业的发展,1979年AT&T公司对具有独立知识产权的操作系统—— UNIX申请了专利,软件被贴上了版权标识,Unix也被强制实施版权控制,阻止了程序员之间的交流与合作,一些优秀的程序员也相继离开Bell实验室,去各个公司任职。商业企业对软件的知识产权保护成为其他厂商进入相关市场的“壁垒”,在没有替代产品(特别是系统软件)的情况下就形成了事实上的垄断。1989年,Ritchard Stallman在麻省理工学院(MIT)的支持下,在计算机界掀起了﹁场数字改革运动——自由软件运动。从此,自由软件得到了蓬勃的发展,成为软件开发者们非常关注的热点。
自由软件(Free Software)是指允许任何人使用、复制、修改、分发(包括再分发修改过的版本),而且提供全部源代码的软件。自由软件的源代码可以免费获得,是一种典型私人提供公共物品的经济现象。成千上万的“志愿者”参与了诸如Linux操作系统、Apache网页服务器、Sendmaill邮件服务器等大型复杂软件的开发,并且这些软件的质量(例如,性能和稳定性)要优于一般的商业软件。显然,传统经济学难以对自由软件的成因做出有说服力的解释。传统的经济学理论认为,在产权不清晰的情况下,私人代理面临着严重的“搭便车”及外部性问题,对于信息产品往往会出现严重的投资不足现象;私人代理参与公共物品的开发是无效率的(Arrow,1962),并且自由软件的开发者仅得到其所开发软件的私人收益,并没有从其他消费者那里得到任何补偿。由于得到的仅仅是私人收益,按照传统经济学的逻辑,自由软件开发者所付出的努力会远小于社会的最优数量。另外,商业企业所开发的标准化软件产品能够累积不同消费者的需求,这样就可以弥补大量的开发成本;相对于自由软件开发者来说,商业企业倾向于做更多的投资,开发更好的产品,满足更多消费者的不同需求。
关于开发者参与自由软件开发的动机问题的研究已引起经济学家们广泛的关注。Lerner等从劳动经济学和产业组织理论的角度展开了分析,认为自由软件开发的动机主要是出于对自身的职业发展以及得到公众的赞誉等方面的考虑(Lerner,Tirole,2000)。Harhoff与Henkel等系统分析了开发者加人自由软件开发的激励问题,主要包括:①诱发商业企业(比如,软件开发商)持续不断地改进。自由软件的开发者会把自己的创新之处免费提供给商业企业,从而商业企业可以对此做出改进并投人市场。②互惠与声誉效应。自由软件开发者向他人展示自己的创新之处,这就形成了一种互惠环境,其他的开发者也会倾向于发布自己的创新之处。对于最初发布创新的人,则会得到公众的赞誉。③较弱的竞争条件。竞争在自由软件开发者之间是相对比较弱的,向他人公开自己的源代码并不会对自己造成很大的损害(Harhoff,Henkel et al.,2000)。关于此问题更多的讨论可参考达尔构建的一个关于管理自由软件开发项目的理性代理人行为模型(Dalle,Jullien,2001)。自由软件开发模式一个很重要的优势就是拥有一个强大的人才库。成千上万的开发者可以参与这个项目的开发。受雇于一家商业企业的开发者数量毕竟是有限的。更重要的是,自由软件顷月对于需要编写什么样的代码具有更好的知识优势。在商业企业中,开发者并不能意识到用户所面临的所有可能的参数(Johnson,2001)。关于自由软件开发的其他问题也引起了各个学科领域学者极大的兴趣。主要包括:分析自由软件和商业软件的竞争关系问题(Johnson,2001;Dalle,Jullien,2001;Khalak,2000),自由软件的虚拟沟通机制(Neus,2001)以及把自由软件作为一种复杂的公共物品。
[1] [2] [3] [4] [5] [6] [7] [8] 下一页
|