近几天看到了关于开源的热烈讨论,笔者认为这样的话题可以再深入讨论,故在此不揣冒昧再撰一文。
一、重要性: 1、讨论之火爆,说明现下国内业界人士已对开源有了颇多的接触和认识。这是很好的事情,如果关于开源的概念和讨论有朝一日能够在业外流行开来(如同手机、汽车和D版),那相信国内的软件业将会呈现一次爆炸性的增长,这无疑是业界同道们的福祉。
2、这其实是关系到整个产业链的根本性关键问题,如果认为不值一提的话,就只能说是闭目塞听了。简单举例说明吧:作为国家信息产业的决策者,是重点自主发展开源体系的软件,还是与主流产商(主要是MS)合作?作为各软件公司的经营者,是采用开源体系软件进行开发,还是采用商用软件?作为每一位程序员,在这混乱无比的时代,是主要学习研究开源体系(现在主要是Linux和Java),还是学习研究商用软件(以Windows和.NET为代表)?作为最终用户,是继续沿用D版等待罚单,还是费力学习使用免费产品……。这些,全是都是有关切身利益与方向的大问题。
二、利弊这样的题目未免太大,笔者只能尽量以所学所用所见的经验再加上部分臆测而论,自然不免以偏概全,姑且作为抛砖引玉之用吧,望各位同道能补充指正。 1、利 (1)基本上是免费的:以国内的GNI Per Capita(人均国民生产总值)而论,商用软件还是很昂贵的。其实就算对于外国人来说,商用软件也很贵,所以Gates等人才能创造商业奇迹,而现下国外开源的风才会刮得那么猛。特别对于程序员来说,如果采用商用体系学习开发的话,机器上的软件价值少说也是以万元计吧。“天下没有免费的午餐”,当国人(包括程序员)多年来已经吃惯了“免费午餐”的时候,突然说“午餐不再免费”了,这样的打击真是够呛!所以,如果你没有足够的资金享用商用软件的话,早一天考虑开源体系或许不至于在突然的打击面前束手无策。(笔者以前一直是用JB的,半年前考虑到版权问题用了eclipse,现在发现免费的eclipse竟然更加强大。)
(2)开放源代码的对于学习研究的意义:对于国内大多数的用户(包括程序员),使用开源主要是可以节省资金,而对于程序员中的高手来说,开放的代码才是至宝,原因在于,开源代码是迅速提高程序员水平的捷径。这世上本无天才,所谓的天才正如牛顿所说是“站在巨人的肩膀上”。这就是大家所熟悉的武侠小说中,为何以年青侠客奇遇资深侠客获取盖世武功作为主线的原因。学习前人的好东西,并在其之上发展,这对于学习研究者来说无疑是一件事半功倍的事情。特别对于系统软件(linux)而言,通过修改源代码,实现安全定制与特殊用途,这真是件很好的事情。
(3)开源对于商业价值:客观地说,开源现在基本上是老外的事情,国内的大多数所谓开源,无非是点很简单的代码,找本书看看就有了,没什么值得保密的。这一方面是技术问题,更重要的是市场问题,国外现在已经形成了一个具有现实意义的开源市场,所以开源已经不是什么无利可图的事情了。
a、原作者的高声望与高就业机会:如论坛上《开源还是不开,难道是个问题》一文中BT作者的事例,还有就是Linux之父Linus Torvalds、struts的主设计师Craig McClanahan等等。老外的开源软件,很多是由本身在软件公司、教育科研机构工作的程序员业余合作的成果,人家有兴趣、有精力去与人合作,展示他们的天份与想象,目的,就是其作品能够得到广大同道的认可,能够在与同道的不断交流中获得程序水平的提高与设计艺术的享受。同时,也就获取了更好的工作机会。试想,这帮老大如果只是满足于像我等使用商用IDE做点所谓Application的话,即使是到了MS,相信也不会有什么好前途。
b、开源软件公司运用服务盈利:如MySQL、JBoss这样红透半边天的免费软件,给人做做所谓“咨询”,也就是说以低层软件公司为服务对象,或出点什么书籍、资料等等,其收益能低得了吗?
c、免费试用的模式:先免费试用,获取认可与市场之后,再转为商用。这方面J2EE界中的Jive和笔者最近用的MyEclipse、JSF Studio等等都是其中的好例子。免费试用,说白了是一种成本低廉的优秀广告,相当于聪明的水果摊贩试尝西瓜之类的手法。所以说,开源最终也是一种商业模式(为避免本文太长,详见本人的《浅析集中与分散软件商业模式》,稍后完成)。
(4)开源是发展中国家的机会与福祉:这大概就不用说了吧。(举个简单的例子:前几天我已经把JB给卸了)。其它的优点就由各位道友一一说来吧……
2、弊 (1)难于使用:这是客观事实,但诸位道友如果在享受免费的产品时还在以攻击为要务的话,就未免有些不近人情了。这世上本来就很难有比MS的产品更容易使用的东西,更何况还是免费的。笔者以为,国内大凡从事软件业的同道,考虑任何问题都不要忘了D版。可以说,D版是一个摇篮,我们在其中不断成长;而现在,当D版已经开始限制我们成长的时候,是扔掉它还是睡在其中不再长大,这一个问题。可惜,这其实根本就没有选择,正如摇篮一样,D版是不可能长久的。所以,是准备必要的资金以享受“好用”的商业软件,还是费力去学习、使用、发展“难用”的开源软件,这也许才是一个问题。从实际的角度出发,尽力让产品变得easy也正是开源体系应该努力的方向。
(2)学习开源体系的难度高,时间长Linux与Windows、J2EE与.NET,玩过的人都知道,谁费劲?表面上看来这个问题很容易定论,其实不然。简单地来说,低层的应用,商用软件的效率较高;高层的应用,开源的价值较大。现在论坛上经常有人咒骂开发难度的降低导致收入下降,甚而将矛头对准Open source,这实在是冤枉好人。“水涨船高”本就是自古以来所有行当的必然规律,而现今IT业偏偏又是那种涨得最快的行当。这一点上不得不提一下MS和Internet,可以说,正是MS与Internet的伟大,将PC与软件传遍了全世界,缘于其方便和易于传播;可也正因为如此,PC与软件又如此轻易地淘汰与贬值。再次提醒诸位,现今的IT是个极其危险的行当。因为其中容易的东西(如操作、简单维护开发)渐渐趋于饱和。所以,如果你试图象“泡沫年代”那样轻易地获取高额利润而到这个行业淘金的话,或许应该冷静地思考一下了。现今,发达国家的IT业,基本上是属于高技术选手,国内开始有这个趋势,如果市场体制比较合理之后,相信10年后大体上也就如此。当整个行业成熟之后,仍然会有较高的薪水,也有很多机会,只是难度越来越大。所以,与其抱怨像电子论坛那样半小时搞定的东西下载满天飞,不如去考虑一下那些即使下载来,也需要很长时间才能领会的事物(如spring、ofbiz或.NET的Duwamish)。毕竟,ASP.NET越好用,MS的收益越高,您的¥就越少。当全业界都会做WEB的时候,您是否该考虑点其它的东西,或是把它做得更优秀。不过,请自信一点,如果你考虑收益的话,“社会必要劳动时间”在正常的市场体系下仍是一个公理。
(3)开源的商业价值低?考虑到money因素,也许有人会说Linux即使再优秀,甚至全面超越了Windows,全面占据了市场,也不可能像Windows赚钱。这您可就太对了。以现阶段的商业应用为而论,MS已经如此优秀,能挤出的油水大体上已经进了MS的腰包。就像过去的十年,OS、办公软件领域,是Windows、Office的胜利,DB是Oracle的胜利,今后也许还是如此。然后,社会经济是不断发展的,新的应用需求是无止境的。现今,软件业正向高度、深度、定制化的方向发展。不过,以笔者估计,今后要想在诞生MS、Oracle这样的通用软件巨无霸只怕是不可能了(Gates迷们可能要失望了)。 数以万计的小型化、专业化、本地化的软件开发服务公司也许是更为现实的景象。所以,是选择商业软件体系还是开源体系进行开发则是一重要的问题。商业体系意味着较高的成本,较低的层次与通常认为较高的效率与暂时较高的市场认可度;开源体系则是较低的成本,较高的层次与通常认为较低的效率(主要是学习、探索、集成的时间长)与潜在的市场空间。何去何从,恐怕还得根据自身实力与周围的市场环境而定。
(4)国内开源的不利形势众所周知,国内的技术环境是比较差的。由于体制与文化的原因,科技人员在国内的前途向来就是比较惨淡的。以吹嘘和欺诈为主要能力的权钱阶层掌控着国内的市场,这从根本上导致了技术的低水平化。低层次的经济体系也就意味着技术与管理的低水平化,这同样包括软件业的。在这样的条件下,所谓信息系统建设,往往也就是在硬件与商用软件上的大把挥霍。故而以收入和地位而论,营销人才远高于技术人才是不争的事实。所以在这片土地上,想要经过多年积累成为像James Gosling或Anders Heilsberg那样的大师,恐怕是极为艰难的。走入开源体系无疑在技术研究积累上是极好的,最终的收益是高的,但也意味着更多的心血与风险。其余的弊病望各位道友尽述……
三、总结 “存在即是合理”,商业与开源软件现在与未来都将长期存在发展。软件业是有前途的,一如它的艰辛。不管是商业或开源体系,要想获得成功,都要走很长的路。应该说,软件业经过了其喧嚣的火爆之后,渐渐回归理性。“路漫漫其修远兮”,愿与诸位同道共勉。
查看本文来源