代码改变世界

开源和免费那些事儿

2009-07-19 01:38  Ivony...  阅读(3083)  评论(16编辑  收藏  举报

开源在软件行业已经不是一个什么新鲜事儿了,但是在我们国家的软件行业来说,似乎还是个空白。一谈到开源,我们都能想起老外做的开源操作系统、开源开发环境、开源中间件、开源下载工具等。但要说我们自己有啥开源软件,似乎除了几个论坛,还真是乏善可陈。

固然,发起一个开源项目不是找个地方把源代码一扔就完事的。它涉及到一系列的事情,在软件行业并不成熟的国内,商业项目尚且瞎整,又有谁有能力、有精力去发起和维护一个开源的项目呢?所以开源在中国,就真成了“开放源代码”。源代码往那里一扔,大家爱咋咋的,什么协作、开发、维护,我可没那个精力。

老实说我也没精力去发起和维护一个开源项目,而且,中国有着文人相轻的光荣传统,谁也不服谁。如果不是为了钱,有多少人愿意去维护别人的项目,发起一个项目让别人来共同维护就更扯淡了。

但不发起开源项目,开源也是有意义的。毕竟,发起并组织一个开源项目并不是人人都能做到的,但把源代码公开,在一定的条约下共享知识和技术却并不难。开源项目说到底还是首先要开源,有了一个开源的环境,才会有更多的人参与进来,才会有越来越多的开源项目。

但,开源并不总是好的。譬如说不应当开源一个完整的产品,尤其是在公司完成的作品。

完整的产品即是指,不需要程序员参与,普通用户或者IT专业人员(非开发人员)可以直接拿来用的软件产品。你要记住,当你在开源这个产品的时候,等于在免费赠送给大家使用。在这种情况下,你等于是发布了一个免费的软件,请确定你真的想这么做。

当然,作为商业公司,为了自身的商业目的,这么做是旁人不能干涉的(或许欧盟会说两句)。而作为程序员,如果你真的确定想要与全人类共享这个软件产品的话,也没有人能对说三道四。尽管可能没有人敢去真正使用这个产品。

如果这个产品是你为公司开发的,那么这样做就是职业道德的问题了。这种情况下更没啥好说的。

 

为什么不应当开源一个产品呢?因为开源的目的在于技术共享,并不是扰乱行业秩序。技术本身是有价值的么?显然是有的,但是技术共享才能创造出更多的价值,所以我们倡导大家放弃这部分价值,使得行业获得更多的价值。从而每个人都受益。但产品不是,一个免费的产品会扰乱行业的秩序。这种例子其实很多,譬如说IE,请不要认为Firefox是一个什么很正义的东西,在我看来,IE通过免费(当然还有捆绑)来占领市场是邪恶的,但Firefox采取同样的手段(免费)来蚕食IE的市场,并不能说是什么很正义的行为(如果Firefox足够好,完全可以卖点钱来贴补家用)。当然现在再加上Google,这种争斗的结果是很显然的,除了Opera苟延残喘外,已经没有人试图通过浏览器来赚钱了。

当然这个例子可能并不是很恰当,浏览器免费是一个不可逆转的趋势,由于浏览器的免费刺激了Web的蓬勃发展,造成了一个新的产业出现,也促成了Google这样的公司。所以Google不但希望浏览器是免费的(所以Google一直全力资助Firefox),最好操作系统都是免费的(按照Google的传统,那个Chrome OS显然不可能是卖钱的),如果有可能,电脑都免费就更好了(我很确信Google会努力)。这样Google的市场才能无限制的扩大。

尽管在这个故事里,我们都是受益者,但我们不应该忘记诸如Netscape之类的先烈是这场战争中的牺牲者。换言之,这并不是一个皆大欢喜的故事。

所以欧盟对微软的处罚并不能说毫无道理,当然你也可以说Windows操作系统同样是要钱购买的,微软也并非在免费的推销IE浏览器。但关键是微软并没有打算让大家可以选择没有IE但便宜一点的操作系统,从而使得大家可以考虑选择其他的浏览器。

最后我想重复那句话,如果你不是非常确定要发布一个免费的产品,或者发起一个开源的项目,请不要开源一个完整的产品。比较好的选择如同Marc Andreessen和Jim Clark(浏览器的发明者),开源其核心Mosaic,而在上面制作商业产品(Netscape),并允许别人(微软)在核心上开发其他的产品(IE),尽管最后的结局还是有点惨。

 

开源是件好事,但免费却不总是,很多时候,免费是邪恶的。。。。。

每次当我看到微软那浩瀚无边、包罗万象的.NET Framework时。我就在想,微软啊,你啥时候也留几个缺,让我们做点中间件来混饭吃啊。。。。。

 

本来还有很多想写的,但夜深了,还是先睡了。