深层解读开源软件
从自由软件到开源软件,雷蒙德从概念和理论上清除了“开源”和“商业”之间的障碍,“开源软件”可以进行商业化运作,“商业软件”同样也可以选择“开源”。
“开源”的目的是方便知识共享,而商业化运作则是为了将停留在“知识”层面的软件代码与文档转变为“软件商品”,从而使知识转化为现实生产力。
对于个人用户而言,他们更喜欢那些源码开放的自由软件,并不在乎软件背后是否有正规的企业提供升级、打补丁等服务,但是企业用户却不会为了便宜就信任一家随时可能消失的软件组织,享受免费的服务。
而要想深入理解自由软件和开源软件之间的区别,以及为什么开源软件也可以进行商业化运作,就必须从软件生产的本质——“知识创新”谈起。
知识创新可以分为两个阶段:研究与开发。研究阶段的产物是纯粹的知识,不是直接提供给用户应用,而是提供给研究人员自己,作为继续开发的基础。开发阶段则是将研究成果加以商业化应用,将其转变为用户可以直接使用的产品。
那么,按照这种划分标准,软件的源代码应该是研究阶段的产物,因为它们本身不能被用户直接应用,还必须对源代码进行编译、连接、打包、部署,并辅以齐全的质量保证措[创 业网www.cye.com.cn]施与售后服务,才转变为用户可以直接使用的软件产品。
由此,构思和编写源代码的过程可以看作是软件的研究阶段,而将源代码转变为软件包并提交给用户的过程可以看作是软件的开发阶段。
传统的商业软件公司将软件的研究与开发完全置于内部的创新模式之下,包括以下步骤:
编写源代码——申请软件专利——将专利转变为软件产品、服务。
而“自由软件”则完全与之相反,软件的研究与开发过程完全由松散的社区完成。
不难看出,传统商业软件和自由软件是两个极端。前者对知识的共享和相互借鉴有一定的妨碍作用,而后者则无法保证将知识转化为商品。
而开源软件则采取了折中方式,它将研究活动与开发活动进行分离,由不同的实体加以完成:由社区或志愿者进行研究活动,发布研究成果——源代码。而商业公司继续开发公开的源代码,将源代码转变为软件产品与服务,从中获利。
这样,既促进了知识的共享,同时又确保知识转化为可靠的商品。社区成员可以借鉴并利用他人的研究成果,每个人都只需要贡献自己微薄的力量便可产生“众人拾柴火焰高”的[创业网www.cye.com.cn]累积效应。而企业将社区的研究成果转变为产品,促进了社区的研究成果的应用,反过来又可以为社区提供大量资金。社区与企业相互促进,形成了开源软件不断发展、创新的良性循环。
|