这些年来尽管媒体一直在宣传开源的好处,但开源软件的市场占有率仍非常低,纵观软件市场仍是闭源软件在主打天下。使用开源软件的用户都是一些“精英”,而这些“精英”当中,绝大部分人也没有关注媒体一直在宣传的使用开源软件的好处。这到底是为什么呢?在认真思考后,发现其实媒体对开源软件的宣传已经偏离了软件的本意。
我们都知道,软件只是作为用户所使用的工具。用户使用软件本意是解放用户自己而腾出更多时间和精力专注于所开拓业务的本身。许多媒体却对此只字不提,只一味宣传所谓开源软件的“好处”。如果用户真正想将软件为业务服务,那软件开源并不一定会给用户带来长足的好处,或者对用户一点吸引力都没有,甚至会束缚住用户的手脚,这也难怪很多用户并不买开源软件的帐了。
让我们来一一分析媒体宣传的开源软件的好处:
· 开源对用户的好处之一:用户可以查看所有的源代码,可以根据自己的需要对系统进行修改,可以对修改的成果提交给社区。
【分析】我们只要再往深一层思考一下,就会发现一个矛盾:如果用户将源代码修改后进行了商业应用,一旦原来的软件进行了升级,并且没有包含自己修改并提交给社区的功能,此时要不要跟着升级?若升级,则自己辛苦修改的成果就必须要重新修改;若不升级,新版可能有许多新功能非常吸引人,并且旧版可能存在着安全问题。软件商鉴于人力物力的因素,一般在发布新版后就会停止对旧版的维护和支持。这样的话,用户每修改一次就会陷入上述的两难境地。如此一来,用户在修改应用后,只能期待开发商在升级版本中打包自己所修改的内容--但有几个开发商肯定能满足每个人的要求吗?这就形成了矛盾。
· 开源对用户的好处之二:爱好者会第一时间修复漏洞并提交。
【分析】这就有个问题了:普通用户是不是要时刻关注着所有人的修改成果?如果是,用户不需要去做其他更重要的业务了?当用户的精力分散时,这就违反了软件的本意——让用户专注于业务本身!如果不能在第一时间内真正弥补网站的漏洞,用户的安全感又从何谈起?用户利益如何得到保证?如果用户不能时刻关注着所有人的修改,则必须等待开发商(或打包商)的统一修改和更新,这时开源软件与闭源软件在这点上有什么区别呢?
· 开源对用户的好处之三:用户可以自己发现问题并解决问题。
【分析】这个观点似乎视而不见“绝大部分用户都是软件的使用者而非开发者”这一不争的现实。会操作使用windows、word等软件的用户可以说比比皆是,但其中有多少人能够发现其中bug和漏洞?就算是程序员,水平也有高有低。对于大型软件来说,又有多少程序员能找到bug所在并修复?使用大型软件产品就象开汽车一样:用户只要会开车就可以了,他们并不需要知道汽车是如何生产制造出来的。而且就算是类似程序员的汽车生产商的员工们,在现代化的流水线作业方式下,大都也只知道自己所负责的某个模块的生产制造,能完整设计制造出一辆汽车的人少之又少。汽车如是,更复杂更精密的飞机、火箭、卫星、宇宙飞船更是如此。我们试想一下,如果某个汽车厂商宣传他的汽车可以由用户一个零件一个零件来组装,这样的宣传,除了对那些超级汽车fans有点吸引力以外,普通用户会被吸引吗?而对于软件业来说,大部分用户根本就不具备阅读和修改源代码的能力。就算是程序员,就算给了他windows这样的大型软件的源代码,又有多少人能够在几千万行代码中找到bug所在和修复bug?就算有这个能力,有没有精力和时间去阅读、修改源代码?有没有动力去阅读、修改源代码?所以,媒体讲到的这些好处只是相对极少数程序员而言的。拿这个只能对极少数人有吸引力的好处拿来到处宣传,出现了众多用户并不买帐的结果也就不足为奇了。
· 开源对用户的好处之四:开源软件更安全。
【分析】许多人以linux与windows为例进行对比,因为windows公布的漏洞比linux多,就认为linux比windows安全,进而竟得出“开源软件比闭源软件更安全”的荒谬结论。linux公布的漏洞少就等于linux的漏洞就比windows少的漏洞少吗?只不过因为使用linux的人少,黑客对此不大感兴趣而已。所谓树大招风,就是这个道理。而且对于某些应用软件来说(比如cms),开源可能会让用户面临着更大的安全风险,这点我在我的另一篇文章中讲了,大家可以点此查看:
因此,开源软件如果要想取得进一步的发展,想更多的拓展市场份额,就不应该再把自己当成开源软件来宣传,而是与闭源软件一样扎扎实实的分析用户需求,满足用户需求,力求其易用、安全、稳定,在宣传方面应该侧重宣传这些,而不是开源本身。只有当开源软件比闭源软件还好用时,普通用户才会选择开源软件,开源软件才会真正的流行起来。以firefox和ie为例,在没有firefox之前,几乎是ie一统天下,firefox发布后,硬是从ie手中抢了10%的市场份额。绝大部分选择firefox的用户,是因为他是开源的吗?显然不是!而是因为他的安全性与遵循w3c标准这些特性。动易如果有一天开源,肯定不会去宣传开源本身,而是仍关注用户需求,并努力把握易用性、安全性、稳定性这些软件的本质。