阿里研究员赵海平:开源是个兴趣活儿
3月底,当我得知可以采访赵海平老师的消息后,我非常兴奋。因为之前就参与报道过关于赵海平老师回国的新闻,而当时也只是从侧面简单的了解到这位大牛背后的一些故事。此次有幸在阿里巴巴园区和赵老师面对面畅聊了两个多小时,听他分享了他的个人发展历程以及他对开源的一些认识。而整个聊天过程中,不管是谈到哪一个点,赵老师说的最多的却是兴趣和爱好,而非我想象中的那些高大上的道理,这也是最触动我的地方。
之前readwrite的报道称Facebook可能已经成为全球最大的开源公司,它将开源的模式推向极致。Facebook向用户开放了他们的软件、硬件和技术解决方案。而这在一定程度上,也成为Facebook吸引开发者的方式之一。近日连线上也有一篇报道Facebook开源成果的新闻,读者可以参考阅读。赵海平老师在2007年就加入了Facebook,参与过Facebook多个核心系统的建设,对Facebook的文化、价值观非常了解。带着早就准备好的几个开源方面的问题,我开始了对赵海平老师的采访。
InfoQ:前两天还看到连线上一篇报道Facebook开源的文章,Facebook非常喜欢对外分享他们的成果,这几年,也开源了不少的内部项目。从你的角度来看,Facebook为什么要做开源?有什么战略上的意义?
赵海平:并不是说美国所有的公司都愿意开源,比如说Google就不愿意开源,这个我认为其实每一个公司在选择什么开源,什么不开源,这是他自己的一个考量。Google认为如果开源了某个核心技术,就会形成竞争上的压力,所以他可以选择不开源。开源并非时髦,开源之前首先应该考虑是否会造成商业上的影响。
如果商业上允许开源,我个人认为,开源非常好。开源之后,更多的人就会参与到该软件的设计中,社区会给与你很多的启发,而这些启发对于开源软件的发展非常有益。
同样在开源之后,程序里面本身的问题也就随之暴露了出来,有更多的人使用你的项目,帮你测试,帮你修复,项目质量可以不断提升。其次,开源会给公司带来正面的评价,外界会欣赏公司的开放心态,更容易了解你的领先技术。
需要注意的是,在开源过程中,公司需要投入很多的人力和物力。比如需要有人去跟进用户的反馈,需要有人去管理开源项目。要把一个开源项目运营好,并非易事。Facebook有专门管理开源的人,他非常有经验,知道在开源过程中会遇到哪些问题,也知道如何与社区交流。
总体来看,我认为开源是利大于弊,只要在商业上允许的情况下,开源都是一件好的事情。
InfoQ:你刚才说到,Facebook有专门负责开源的人,能详细介绍下这个角色吗?
赵海平:他的职位是开源经理,负责管理整个公司的开源项目。比如在项目开源之前,他会检查是否有泄露公司核心机密的代码,并帮助解决。他会处理90%的外部反馈,这样可以大幅度减少核心工程师的工作量。总体来说,这个人在开源方面有非常丰富的经验,懂技术,并且运营也很专业。
InfoQ:Facebook开源自己的内部项目后,内部也会使用该开源版本的项目吗?
赵海平:是的,内部的版本可能会有更多新的特性,但肯定是一个版本。不然的话,你就丧失掉了开源的意义,而且你也希望是一个版本,这样外面有新的功能或者Patch,你都可以很快合并进来。
InfoQ:您对中国目前的开源现状有何看法?
赵海平:我觉得国内的开源还没有形成气侯,现在大家都是在各做各的。在美国,开源就像旗帜一样的,旗帜一立起来,大家就往上拼。最后拼起来之后,就像一个金字塔一样,非常壮观。咱们可能还没有拼起来,但是我觉得慢慢来,不着急,我们可以学习国外的开源建设经验,在他们的基础上,结合我们的国情,稳步前进。
InfoQ:员工在参与开源项目与本职工作之间应该如何平衡?
赵海平:这个说起来,我并没有一个特别好的答案,这个问题都可以上升到公司的高度去探讨,并且也值得探讨,这应该是一个公司和员工之间的默契。
说心里话,如果能够把员工搞技术的积极性给调动起来,对于公司来说,绝对是一件好事。如果说员工愿意在开源的环境当中做一个技术的佼佼者,那他在公司也一定会很优秀的,优秀的人一定是处处优秀,也许公司真的应该给工程师较多的时间去做这个事情。
你刚才也说了,很多中国员工的日常工作特别的多,这也正是我想来阿里巴巴体会的事情,我想知道大家都在干什么,为什么有这么多的工作,这个也是需要慢慢的去体会思考的一件事情。过段时间我可以再和大家分享下我的体会。
在美国有一大批的人,他上班的目的也许跟中国员工不太一样。他们可能会认为上班是为了生活,而咱们觉得要生活必须得上班,这个主次的关系也许可能会让他们觉得开源是很重要的一件事情,而上班是次要的,这也是我的一个推测,和文化、国情有关。
InfoQ:所以公司其实也应该适当去鼓励工程师参与开源项目?
赵海平:阿里巴巴开源了很多项目,这个意识在国内很超前,但并不是每一个中国公司都这么想。有的公司可能会认为,你这个员工做的事情和KPI根本没关系,所以他们会禁止这样的工作。其实这些事情都是息息相关的,工程师在参与开源的过程,就是一个学习的过程。通过开源,他的业务能力和技术水平都得到了提升,怎么会对公司没有好处呢?既使是花掉了公司一点时间,没有做公司本身做的工作,但回过头来也是有意义的。
InfoQ:一个网友的问题,您是从生物学转计算机的,跨越不同的学科,仍能做到顶尖,是不是付出了很多?
赵海平:每一个行业做到最顶尖的人,都会付出很多。当然凡是做到最顶尖的人,那都是爱好那个行业的人,所以他才肯比别人花更多的时间。而如果你能比别人投入更多的时间,那你肯定会比别人更擅长。当你更擅长的时候,你就会更喜欢这东西。所以爱好和付出是一个正反馈的过程。
高危漏洞频发,隐私泄露,普通开发者该如何避免和防范;开发者如何从逻辑上避免风险?在【QCon北京2015】“新时代的安全”专题中,在Pwn2Own 2015上夺冠的Keen Team安全研究员Peter Hlavaty将解读内核安全精髓;阿里巴巴安全专家祝建跃将分享互联网全球最大DDoS攻击防御实战。