另一个角度看开源

说起开源,某种意义上其实就是代码倾销,不是吗?举个例子:

有家公司需要一套图片处理技术,最初因为大家都是闭源的,只好自行开发一套,假如叫MyImage。

用了几年,人来人往的,这套技术缺乏维护,有点老旧了,需要更新。

这时,有人提出与其用之前代码,不如直接用开源,如CxImage或者FreeImage,原因如下:

  • MyImage因为缺人维护,多数开发人员都不了解,所以熟悉开源库和熟悉自己技术投入是一样的
  • MyImage是数年前做的,技术进步了,而开源库常年有人更新,是相对最新的技术,适用性更好
  • 成熟开源库有大量用户在使用,可以说是千锤百炼,可以认为库是没有问题的,这样只需要检查自己调用代码是否有问题就可以,排错的成本低
  • 开源库有专人维护,而MyImage即使这版更新了,后期如果没人维护照样要完蛋,远不如持续更换新版本的开源库简单。

这些理由都很充分,说白了,主要是国内公司生存压力大,缺乏专门的技术研究团队,最初开发时虽然起点相同,效果类似,但技术一旦开始应用,发展就基本停滞了,而开源库虽然更新缓慢,但却是细水长流。几年下来,差距就拉出来了,这时想要追赶,光是组建团队,拟定目标,就需要投入相当大的时间和资源,使用开源就成了一条近路。

可问题是,使用开源就意味着舍弃自己的技术,所以紧接着就会有出现:

  • 这个问题没法解决,因为我们用的开源库不支持。

有人可能会说,不是开源的吗?在上面改啊。问题是,用开源库是为了走近路,公司不可能是为使用开源库的团队投入技术原创团队那么多的资源,大家都认为开源库有人维护不用关心内部细节,于是开源库有了问题没法改。

  • 继续升级需要选哪个开源库?
  • 开源协议怎么办?
  • 好吧,投入资源升级开源库,但我不想开源这些代码

国内一些OpenOffice的衍生品就是坏典型,独立开发的模块往往不开源,导致无法融入开源社区

  • 投入资源升级开源库,就算我不需要开源,但原库升级怎么办

最重要的问题是,因为用了开源库,你的产品和别人的产品没有区别了,同质化严重,这个问题在提专利时特别明显,如果你的所有代码就是调用开源库,连专利都无法提,也就是说你的产品无法保护,或者保护的必要,那你还怎么样生存呢?

要是不用开源库呢,让我说难,这就是困局啊,就和当年倾销中国的大米一样,你说不买?国内的米贵质量又差,你说买吧,以后国内没人种米了,人家就可以随便涨价了。

都说国内技术和国外有差距,但大家都是学的一样的理论(虽然国内可能要晚一点),用的一样的工具,甚至做的一样的东西,怎么就有差距了呢?能倾销你,这就是差距阿

那怎么办?

看看国外的大公司都在不断的用户开源,就可以知道,真正解决的办法只有一个,那就是加入开源,掌握开源的话语权;否则就自己做技术吧,把自己做大做强,毕竟技术只能掌握在自己手中,不管开始是从哪儿来的。

OpenSource

Leave a Reply

Your email address will not be published. Required fields are marked *