先说一件不算太久以前的事儿。
两个多月前,苹果全球开发者大会在美国旧金山开幕,当库克在会上宣布Swift编程语言将开源的时候,会场上响起了持续2分多钟的欢呼声。苹果终于变得Open了。
伴随着Linux第一个版本的问世,“开源”一词被定义,并凭借顽强的生命力迅速发展壮大,现在,开源产品已经无处不在。你访问的网站,大部分是使用Apache的Web服务器,大部分是Linux或BSD的操作系统,大部分都是使用MySQL的数据库,甚至你现在用的Firefox浏览器也是开源的,不仅是苹果,被认为最大“反派”的微软,在纳德拉上任之后也变的更加的开放了。
不管是在开发领域还是产品领域,开源已经成为一个趋势,github也已是标配。现在,问题来了,为什么开源会有如此的魔力,或者说是谁在做着“开源”的梦?要找这个问题的答案,我们就先要知道谁是开源背后的推动力量。
让我们先来看一下OpenStack身上发生的事儿。就像提到大数据必然会提到Hadoop一样,在云计算领域提到开源就不得不说OpenStack ,OpenStack 是开源的云计算(IaaS,基础设施及服务)管理平台,最初由NASA和OpenStack联合发起。几天前,OpenStack 创始会员也是主要贡献者之一的Mirantis,获得了 1 亿美元的 C 轮融资。此次融资最大的亮点在于 Intel Capital 领投,高盛、August Capital、Insight Venture Partners 等跟投。而思科、IBM、EMC、HP、Oracle等创痛IT则巨头纷纷通过收购相关初创企业和加强研发来获取市场份额。
众多厂商和创业团队不断生产开源软件、做着开源的生意、开放自己的代码,他们既是开源的推动者也希望成为距离利益分配最近的受益者。越来越多的选手已经不满足自身能力的增长而是寄希望于对于整个赛道的控制,以谷歌为例:
一直以来,Google都在极力推广和倡导开源,并发布了一系列开源项目。这是因为 Google从开源软件中尝到了甜头,如果没有开源软件,Google也难以达到今日的成功。Android和Chrome只是单个的开源项目,但围绕它们构建了庞大的生态圈,基于它们(平台)上所开发的插件和应用数量惊人。Android在2007年以开源形式发布,随后其阵营呈现出了爆炸式增长。如今已经成为份额第一的移动操作系统。
对于长期致力于疯狂赚钱的Google来说,投身于开源社区的主要诉求并不是索取回报,而在于社区建设本身,或者说凭借自身对社区的控制能力而将暂时无法使用的破坏性技术先收入囊中。这样,“创新者的窘境”就予以解决了。 Google Android开源项目经理Christopher Katsaros表示。例如Google’s Summer of Code,就是Google主办,旨在激励大学生为开源项目做出贡献的项目,目前已经为开源社区贡献了5千万行代码。
与Google不同,更多的团队和创业者则希望凭借开源减少在开发上的时间成本。由于开源软件具有开放、共享、自由等特性,可以解决这些企业对于OpenStack、Hadoop、Docker等架构不熟悉而导致"并不清楚怎么做"问题,可以大大扩展企业所采取的技术手段的边界。当然,这并不是说这些企业就只是索取者而不是贡献者,比如Square就在代码的贡献数量上与Google不相上下,在Square CTO Bob Lee看来“正是因为Square公司规模小,因此将代码开源更具积极意义。与其将内部有限的开发资源都投入到通用问题的处理上,不如将其贡献给开源社区并与外部海量的开发者协作(重构和持续发展这些项目)。这种做法同样适用于和Square类似的公司,集中精力完善业务上的特性产品,而减少耗费在通用基础架构上的时间。”
作为国内首个开放移动社区引擎OpenCom主要是是通过移动端的插件模式,近期推出的开源计划,就是希望将目前公司研发的一系列产品予以开放出去,进而让更多的人参与到APP插件的开发中。将原本的移动社区,通过开源扩展为“社区+”,同时在服务端依据云计算的支撑予以实现。
国内另一家云端数据备份公司多备份,也正在考虑将其大部分代码予以开源,创始人陈元强的想法很简单,希望借助开源可以让更多的技术人员加入进来,进而解决在实际开发过程的人数不足的问题,当然,对于加入进来的人来说,也会提供一些相应的物质奖励进而保证开源的活跃度。
在今年年初的时候,某媒体在一篇名为《回顾那些曾经热门的国产开源软件》的文章中,一次性就列举了100个国产开源软件,但请注意“曾经”二字。这从一个侧面反应了目前国内开源所面临的问题。
首先,虽然国内的开源并不是停滞不前的,一些世界级别的大项目,比如Hyper、RebornDB等也在不断涌现,,只是这个过程较为漫长,并且由于国内整体IT产业的发展相比于其他发达国家还有比较大的差距,更多的时候国内的企业还只是开源的使用者和借鉴者,还没有到发明创造的阶段。对标国外开源产品,国内一些开源产品无论从软件访问、收藏、交流分享还是项目本身的更新频率等方面都还存在差距。
其次,开源和产品一样,会有具体针对的人群和具体的领域。开源中国主编郭蕾举了一个例子,在开源中国上有个比较火的开源项目JFinal,项目人气很高,从社区的角度来说也比较喜欢,但很难商业化或者国际化,原因就是这个项目设计的内容太基础,并且没什么难度,大家都是为了方便自己的具体的业务而来,来之即走。从实际情况来看,一个好的开源项目是需要演变为一门好的生意之后才会形成一个好的生态,例如我们前面讲到的例如OpenStack和VMware于推出的业界第一个开源PaaS云平台Cloud Foundry。
最后,虽然开源有着如此多的好处,但开源与创新的悖论,仍然不容忽视。开源的存在,可以使得不管是Google还是众多的创业团队根本不需要重新发明轮子或购买昂贵的产品,而是可以使用最少的人力、物力就能很快构建出一个高性能的产品或系统来。然而当我们过分依赖于“拿来主义”的时候,创新也会变得异常的艰难。(本文首发钛媒体)