这篇文章我已经思考和构思很久了。一直在写与不写之间犹豫。想写,只是希望自己能做个抛砖引玉的引子,能够引起大家足够的思考。不写,可以说不敢写,是因为自己阅历有限,很多地方也没有搞明白。而且开源软件和商业软件之间的关系不能说是势同水火,但也是属于井水不犯河水。原来题目我想的是《开源产品与商业产品的二难选择》思考很久,觉得还是现在这个题目更符合。

       首先交代一下,我是一个IT PRO。我不是程序员,所以我不会创造软件。作为一个有专业技术的劳动者,按照马克思理论的生产三要素:劳动力、劳动工具、劳动对象,为了完成我的工作,(劳动力不用说了,就是我。劳动对象就是企业或计算机)可以选择的就是劳动工具了。选择不同的劳动工具,完成我不同的工作。

      俗话说,工欲善其事必先利其器。但是在选择我的工具——软件产品的时候,我困惑了,我真的困惑了。首先看当前的软件,大概分两类,一类是商业软件,一类是开源软件。坦白的说,我个人喜欢选择前者。在选择软件之前,一个问题先摆在我的面前。作为软件的底层,首先是选择操作系统。我们常用的两大操作系统(什么BSD、AIX之流的不说了)很显然WINDOWS站在了商业软件的阵容。而LINUX站在了开源软件的阵容。这两个系统的背景我就不废话了,估计地球人,不,应该说火星人都知道。所以我就不多说了。按照目前行业情况,人们都会站其中一个阵营(二选一)为其摇旗呐喊,还会时不时的小P一下对面的女孩。而向我这样站在两条船上的人摇摆不定的少之又少。所以,让我选择商业软件产品作为工具的时候,我不得不研究WINDOWS系统,而当我要选择开源软件产品作为工具的时候,我又不得不跳转回LINUX的阵营。

坦白的说,我喜欢商业软件。但是老板们通常不喜欢。商业软件——软件开发商最终会将其作为商品售出。你购买后就可以使用了。这是很多人的看法,但我个人却不这样看。不管是按照单位价格出售,还是按照用户数量出售,这本是销售商的策略。商业软件的价值不仅仅是商品本身:而是产品+服务 我想很多软件开发商老板是这样想的。现在举例说明。比如一套邮件服务器系统。售价是1000元。一般情况下,我购买后,成为他的客户,厂家都会负责安装,调试,甚至使用方面的培训等工作。甚至软件使用过程中出现了问题,我都可以找开发商去解决的。因为我买了你的东西,你必须得负责。当然也不见得所有软件都是这样的一条龙服务。也许有些大型的复杂的软件技术支持或服务是另收费的。但是不管怎么说,好歹跑的了和尚跑不了庙,反正我能找到软件开发商。但是,至少在中国,部分商业软件被D版打破了。所以我们很多人都能使用了,但不能忽视的是,这绝对是商业软件中很少的一部分。大部分商业软件还是要掏钱的。所以老板们不喜欢。特别是一些中小企业。我经常在51cto BBS论坛上看到一些午饭在上面吼:谁给我一个XXXX呀,最好是不要钱的,破解的。。。。 这是我们IT PRO的悲哀。作为一个IT PRO,我们有责任和义务为企业、为老板选择一个性价比好的产品,但是我们没有承担背上D版使用者骂名的义务。说道破解版软件产品,我本人不支持使用。不是说我假正经版权意识多么强烈,而是很多软件被破解后会有各种各样的问题,甚至个别软件会被人动了手脚,所以我强烈建议我的同行们,不到玩不得已,千万不要在生产环境中使用D版软件。实际上由于商业软件具备这样的规律,所以相对于在拿开源软件产品做工具的人相对要轻松的多。所以一个潜意识的规则:拿开源软件产品做工具的IT PRO普遍薪水要高一些。

        相比开源软件来说,我个人这二把刀的水平是不敢轻易使用的。由于开源软件产品绝大部分都是以源代码的形式公开免费下载的,所以不需要购买,不需要支付使用费用,所以很多人鼓吹它多么多么好。其实也不竟然。由于不需要购买软件,所以省去了很大一部分建设成本,对于我们IT PRO的好处是,开源软件因为没有了技术支持而使得我们不得不独自面对技术难题而去解决,提高了人工成本(你的薪水)这对于大型企业来说。实际上开源软件若不经过一定程度的修改,可以说,基本上不能用。也就是说,企业必须有一定的程序开发人员,完成对开源软件项目的二次开发工作。因为开源软件的功能与商业软件是不能相比的,而且,其漏洞又比较多,所以,一定的二次开发工作是必须的。所以我们可以看到相反很多大型企业或由实力的企业在使用开源产品。而中小企业,基于安全性和自身实力,还是尽量悠着点。但是对于IT PRO的坏处也就来了,你总是被开发人员要牵着鼻子走。(商业软件就不同,因为我花钱了,不好我就不买,不行我就换.) 商业软件开发商根据实力和规模,为了普及和宣传自己的产品,会提供教程、培训、认证等各种方式来满足我们IT PRO的需求。相对于开源产品,这方面的东西就太少了。比如微软的产品OFFICE,甲骨文的ORACLE你到书店一堆堆的书籍,你到网上一堆堆的资料。而开源软件的相关内容近2年来才相对多了一些。所以精通开源软件产品的人要比商业软件的人士要少的多。

以上烂七八糟的说了一堆,实际上只是从大体上说了一下目前两者的现状。因为事事无绝对。比如一些比较成熟的开源项目作为产品还是被很多无论大小的企业在使用。(如LNMP组合)