具体的动力说不准,我只能猜测一下很多厂商都参与进了主流Linux发行版的研发,我觉得有下面几种原因
一是为摆脱单一组织束缚,研制更好用的适合于自己开发的系统,比如某软件厂商进行开发,使用Windows等闭源产品一般会交纳昂贵的费用,而且在升级维 护上处于很被动的地位。自己做操作系统即没有研发能力成本上又合不来,因此不如参与开源研发,使得开源系统或软件更适合自己。
二是参与推动标准化进程,光是适合自己不行,别人也用也是很重要的,因为别人用了,当和自己有业务往来的时候,双方的成本就能省去很多,会把注意 力放在业务方面,而不是平台环境等。标准化的好处就太多了,因此如果让自己的私有标准成为公共标准或是公共标准中的一部分,那么成本就会大大降低。而公共 标准又只能是开放的,要不怎么是标准。就像法律如果不公开里面的条款,那么就不具有法律效力了。因此为了使自己的标准成为标准,或是使标准成为自己想要 的,并且要使标准成为真正的标准即大家都用,所以他们一直在参与开源项目的开发的推广。比如eclipse就由ibm的产品成为了开源产品,得到几乎为0 的获取成本使之迅速普及,这样别人都用eclipse时,对于ibm来说,不但自身成本降低,也为相关的很多产品得到了巨大的市场。
对于个人参与开源或是小的团体参与开源,我想和大厂商是有很大不同的,要分这几类吧:
第一类就是为了让自己获得一个更好用的工具,这个厂商的第一个原因很像,这也是现在很多小的开源项目的出发点。比如自己发现所有的ftp软件都不 好用,那么就想去写一个,但自己的力量不够,怎么办,立个开源项目吧,组织一起开发。还有比如自己发现Ubuntu Linux在某项功能上不好用,而整个系统总体上来说又是非常好用的,那么自己可以参与到开发中来,争取说服其他人按照自己的意图发展,当然除BUG好 说,如果改方向就是不容易的。所以现在开源项目越来越多,而大部分都在做重复的工作。最简单的例子,Everest的发起者没能说服Magic Linux的研发者按照自己的意图去做,没有办法,自己再立个项目,再做个发行版吧。做了软件别人也能用是自己最高兴的事了,这也就是分享精神吧。
第二类是个人主张和信仰,比如Richard Stallman主张软件应该是自由的,比如软件的使用者有自由获取和修改软件的权利,而不应受制于某一组织,软件公司应当以服务来赢利,所以会全力参与进开源研发和推广。
第三类是展示自我,比如在Ubuntu中的某个软件的开发团队页面有了自己的名字,这也是对自己的一种认可。自己立了一个开源项目,并且形成了一定规模,也是一种自我肯定。参与Linux的推广,组织一些推广活动,也会得到周围人的羡慕和认可。
第四类是理智的认为开源有益,比如确实觉得Linux好用,各项功能完全满足或是基本满足自己需要,或是更适合于实际需要,而且又很廉价,当然廉 价对于他们不是第一因素,那么就会向别人推荐。自己觉得参与开源研发确实能学到很多知识,得到锻炼,而且很多开源软件的使用方式比闭源要合理得多,比如 Linux的系统比Windows在很多方面都要合理,有发展前景,值得参与,值得推广。
第五类就是盲目和极端主义者,这和信仰是不同的,信仰是有自己观点的,而这些是随波逐流的。比如很多喊着“开源必胜”口号的人,相信开源必胜,但 又不知道为什么必胜。还有天天喊着“开源万岁”,认为开源是万能灵丹,是软件中共产主义,每个人能应该具有高度觉悟、大公无私,认为开发软件的人应该只开 发,不计任何回报,这些是极端开源主义,是盲目的。与此相反的是很多一提开源就抗议,他们甚至不知道什么是开源,只知道自己的生活习惯不应被改变。还有就 是认为开源==Linux,开发开源软件就是开发Linux。这一类都是盲目的不理智的,但形形色色,人数众多。
上面就是我的猜测,也算是一个对自己想法的总结吧
2007-5-13 周日, 下午3:31首发于Ubuntu中文论坛
