中国互联网产品90%以上都是基于开源。然而大部分开发者却以“用”为主,缺乏真正融合的理念,对开源社区的回馈少之又少。开发者应如何利用资源更好发展,建立起开放共赢的开源生态?这一问题一直困扰业内。
最近,诸多媒体对微软开放技术公司开源社区高级总监GianugoRabellino和微软开放技术有限公司总经理云浪生进行了采访,其中关于中国的开源现状和未来前景等问题的讨论很有意思,特别拿到专访速记,进行整理,分享给大家。
以下是采访实录摘选:
中国开源与互联网一同辉煌
云浪生认为,中国互联网做的产品,90%以上都是基于开源来做的。中国软件的发展是断代的,直接跨过了真正实现桌面软件开发的辉煌时期,跃至互联网开发。中国互联网开发是从电子商务,还有QQ这样的通讯软件做起来的,中国在这块做得非常不错。开源在中国会发展的非常好,因为开源跟互联网是密切相关。有了互联网,开源才真正取得了当下的辉煌。
如何看待开源和开放的的关系?
云浪生:在这个“移动为先,云为先”的时代,伴随着技术飞跃的同时,观念以机器为中心转至以人为中心。在不同的环境、不同的平台下,各种技术如何很好地融合在一起至关重要,从而也突出了开放的重要性。微软在标准(如系统API)、开源、社区和互操作性等方面做的都不错。
互联网企业也会将产品继续开源,这样的趋势很好。
云浪生:这是将来的趋势,微软也在往这个方向走。硬件变成了消费品,变得很便宜了,消费品的利润是非常薄的。现在软件也在逐渐变成一个消费品,想靠软件许可证去赚钱,已经非常困难了,应该靠增加额外的价值去做生意。很多公司把自己的东西拿出来,去开源,它有大量的用户,通过各种别的方式赚钱,Facebook就是。这是趋势。这也是为什么开源的前景会越来越好,因为愿意把自己的技术分享出来的公司会越来越多。
代码维护成本高,是否是开源的重要因素?
云浪生:是的,代码需要长期的去维护,改进,投资非常高,现在开发模式都是快速叠加,第一次把它做出来可能花不了太大的力量,跟长期的五年、十年的开销比起来还是很小的。你把它开放出来,可以让这个群体帮助你来做这个事情,从中你可以得到很多收益。
落地生根的中国开源社区还需继续发展
要打造一个活跃的开源社区,微软开放技术公司开源社区高级总监GianugoRabellino认为,开源的治理需要确定两大规则:规则一,社区本身的重要性超过代码;规则二,要让个体开发者意识到,在一个开源的社区中,工作起来是更加容易的。”即在这个社区中,你做的事情别让人反感,你要学会跟别人去协作,在你打造开源社区的架构时,一定要考虑到它的可扩展性”。
记者:美国有很多开源社区运营的很棒,如何看待中国的开源社区?
Gianugo Rabellino:中国做开源社区第一可以规模化,因为规模足够大;第二,中国也有理工科教育的基础;第三,中国人民有这样的意愿去做这样的事情。所以我对于中国社区的观察就是,开源社区已经落地生根,而且成长得很快。但是如果要让中国开源社区有一个非常坚实成长基础的话,还需要做到一些非常基石性的工作。
第一就是为开源定义。最基本的一个开源软件就是能够允许人们在任何时候、任何地点都可以去用这个软件。在中国,软件可以给你开源去用,接下来又要加一条,就是不可以商业化的去用它。我觉得这完全就是对开源和善意使用的误解。因此我认为,中国的开源社区必须要保证一点:大家都对于开源有一个一致的认识,不要只把开源当做一个市场宣传的理念去使用,而要遵守国际上开源软件的规则去做。
未来开源社区的前景如何?
云浪生:在中国开源社区不是小众,是大众的,基本上每个互联网公司,他的基本技术全都是开源的。现在的问题是,它们都是以用为主,没有真正融入进去,受众面是非常大,只是没有非常成功的东西。原因非常复杂,有些原因是英文的环境,你要用英文交流,去写,这些大量的运作工作也不是非常容易的。开源界很多社区领袖认为有些原因是温饱问题,中国这边的社会保障程度不是很高,社会保障程度高了以后,大家都不用去担心这些问题,人贡献的就多了。另外跟企业、法律的完善都有关系。
怎么样去做这个事情呢?你要是真的愿意去做,还是能做到的。再往前走,这个情况会越来越好。
要推动中国开源往前发展,有哪方面的建议?
云浪生:社区比代码更重要。在中国,要想把开源做好,最重要的事情就是要把社区做好。就像中国足球一样,不是找到一个足球明星就可以把中国足球变好了,而是如何把这个系统做好。社区是一个很综合的概念,怎么去把它做好,不光是用,还要如何去反馈,甚至在一些主要的软件开源的项目里起到主导的作用。要保持生命力,就要融入主流,甚至在主流上起到决定性的作用。
要盈利,开源可以通过服务来实现
Cocos2d-x背后的公司谷歌科技,华尔街的分析师认为开源的游戏引擎是没有价值的,一般这种开源项目存在商业化的问题,很多游戏公司很难直接看到在业务上的回报,没有厂家的投入的话,最后这个游戏引擎没人用了,或者代码就没了。所以从开源引擎这个例子来看,云浪生认为,开源和盈利需要平衡。
开源的盈利模式会是怎么样的?
云浪生:大家一直都在争论开源如何赚钱。这是一个非常大的问题,将来软件通过许可证去卖钱会越来越少。硬件被商品化后盈利很薄,软件也出现这种情况。像谷歌、Facebook等这些公司,都不是靠卖软件赚钱,而是靠服务,或者用这个软件真正给用户提供的价值来赚钱。如果能提供有价值的东西,公司就可以长期存在下去。开源引擎公司同样不是靠许可证赚钱,它要证明对用户是有价值的。
Gianugo Rabellino:首先,从业务战略角度来说,采纳率非常重要。作为开发平台的公司,需要找到一种方式,把高采纳率转化成盈利的项目。
开发者和开源的关系?
Gianugo Rabellino:我说三点。
第一点,我们和各种各样的技术平台都是合作的关系,只要是开发人员用的这些技术,我们都是跟他们合作的。
第二点,作为一个开发人员,在目前你要选择一个技术的话,是否是开源以及这个开源项目其后的开源社区质量如何只是要考虑的诸多因素中的一个。事实是,如果技术本身就不好,即使在它上面撒一些开源的调料,也不会变得更好。
第三点,在这样一个全新的开放的世界,如果只是谈开源和闭源的关系的话,本身就太有局限性了。同时我们还要考虑其他的一些元素,比如开放标准、社区以及互操作性。如今一个非常明确的业务需求就是要做跨平台的开发,作为一家公司,需要考虑业务目标是什么,达成业务目标的最佳技术是什么。而在这个考虑的过程中,开放性是一个关键的因素。