当前位置:Linux教程 - Linux业界 - 走向开源的软件

走向开源的软件

早期购买软件,你只能得到软件的可执行代码,一般不会有源代码,好比你买一个陶瓷罐,人家不会把制罐的模子给你一样,算是一个常识。不仅仅不提供源代码,而且你购买的软件许可中常常明确禁止对可执行代码进行逆向工程。换句话说,你购买的是软件的功能使用而不是如何制造。     这实际上说明,用户对购买到的产品的权利主张是受限的,并不能随便扩展。    在非IT软件的产品生产中,产品成本由两方面构成,一方面是设计成本,一方面是生产成本,设计成本通常是一次性投入的,与生产多少无关,而且,设计本身被复制的成本与设计付出的成本相比,常常很低。    一个作为功能使用的产品,仅分摊了一份设计成本,如果产品使用人按照此设计自行组织生产,那么生产出来的产品就没有分摊设计成本,这显然是不合理的,如果这种情况长期存在,投入设计(原创)者的积极性将受打击。    非IT类产品的生产和使用的界限比较清晰,可以通过专利、知识产权等形式对相关权益进行保护,对于使用者来说,由于购买的产品比较确定,如:杯子的功能就是盛水的,很明确,这种权益保护一般不会过多伤害到用户的利益。    软件与传统的非IT产品却有着很多的不同,被购买的产品的功能很多并不确定,产品使用者和产品生产者常常需要进行密切的沟通(培训、交流),在软件产品的产业链上,如果产品只以可执行代码的形式出现,需要进行再开发的中间环节将面临很多的不确定性,升级、兼容性居于较高的风险,成本代价也很大。    知识产权的保护是一把双刃剑,在保证了原创者的权益的同时,实际上也限制了知识的共享和交流,原创者对权益的垄断也会增加社会付出的成本,这两个矛盾常通过保护时限来平衡。如果这个观念带到软件行业,就是专有软件,专有软件权利人具有排他、垄断性的权利,由于信息产业软件创新的周期越来越短,专有软件的弊端愈加明显。    开源软件,顾名思义就是开放源代码,不过开放源代码并不等于放弃所有的权利,而是与专有软件的排他性相对,减少了权利垄断性,关于专有软件和开源软件的关系,不再多说,有兴趣的朋友可以参考开源软件文集。    开源软件代表了一种开放性思路,鼓励交流和知识共享,问题是,这种思路能有商业模型吗?或者说具有比专有软件更有竞争力的商业模型吗?    开源软件放弃了部分权利,从这一点看,设计参与者获得软件权益会受到一些影响,但这种影响并不一定总是很大,如果说一套软件中,开发者独立劳动占绝大部分,那么权利放弃是很明显的,如果开发者独立劳动占的比例较小,那么权利放弃就很少,与放弃部分权利换来的交流和共享相比,显然是值得的。    随着软件业日渐成熟,标准化的推进,很多独立的软件功能实际上无需进行重复的开发,尤其是基础性的功能模块,基本上都是现成的,开发者独立劳动占到大多数的软件将会越来越少,软件开发者更多的是利用这些模块来“搭积木”,而不是制造积木模块,这也是为什么软件开发越来越需要更多的设计者而不是编码者的原因,用过J2EE和Visual .net的朋友应该深有感触。    代码开放了,购买这个软件价钱将会大大减少,对于软件普及的好处不言而喻,Linux迅速成为令Windows紧张的操作系统就在于此,而且现在以Linux为中心,已经形成了丰富的开源产品链,开源软件已经是一支强大的力量。    购买软件价钱的减少,并不代表整体价值的减少,按照我在制造业没落与google崛起一文中的说法,当软件开发成熟之后,价值核心力量将从产业链上游推向下游。如果你不相信,试想一下,如果我把新浪网站的全部代码提供给你,你能重造一个新浪吗?    开源软件在个人之间容易形成,由于互联网的发达,有兴趣的人,利用网络就能够组成虚拟的开发团队,他们可以共享知识成果。当然这种方式并不适合需要人员密切合作和需要较高资源投入的场合。    开源软件不能代表软件的全部,但更多软件必将走向开源。    刚开始写这篇文章的时候,我列了一个题目,传统产业中有开源的例子吗?一开始没想出来,文章快结束的时候,我想出来一些,传统中一些公开传播的偏方,已经实施多年的传统手艺比如纺纱,学校里的学习,和开源具有同样道理的东西实际上很多,他们的价值关系大家不妨想一想。