英国大学终身教授因为一杯咖啡,转身做了华为的工程商人



作者 | 孟晚舟
来源 | 蓝血研究(lanxueyanjiu)
投稿 | lanxueziben(微信)
顾问招聘 | lanxueziben(微信)

俞一峻教授现任华为爱尔兰研究所ADA(先进可信语言工程)实验室主任,是华为Rust语言领域领军专家。在过去二十余年中,他在全球多所高校从事并行编译、Cache数据局部性优化、AI需求模型等课题研究,首创了自适应系统需求控制理论。作为英国开放大学终身正教授,他的学术水平在英国软件工程CS Ranking(全球计算机科学专业排名)排名前六。加入华为后,他带领团队深入研究Rust语言特性与生态,输出多项重要成果,建立了Rust语言在产品线的应用工程能力,并显著提升华为在Rust语言社区的影响力。以下是对他的专访。
——编者按
01
与华为结缘
始于峰会中的一杯咖啡
问:听说在几年前的一次行业峰会上,您曾与华为有过一次难忘的交流?
答:是的,那要回溯到2019年夏天在瑞士举办的雪山峰会。在那次峰会上,我遇见了华为可信理论、技术与工程实验室主任蒋铭。当时,我俩端着咖啡,边喝边聊。我们聊了很多话题,蒋总和华为对于软件工程技术的理解深度,给我留下很深的印象。我们畅想了新技术,如AI技术与软件工程相互碰撞,将迸发出怎样的火花,为华为带来怎样的进步……我第一次深刻感受到一家企业对于软件工程研究落地的迫切愿望。随后,受蒋总委托,结合我的专业知识和学术影响力,我对当时与可信相关的软件工程技术做了一次全面的梳理和洞察。
问:在梳理和洞察中,您有哪些发现?
答:在这个题为《面向语言的软件工程》的洞察报告中,我发现,除了业界关注的机器学习在软件工程上的应用之外,Rust语言相关的研究论文也出现了增长趋势。该语言具有良好的执行效率、功耗表现、特有的内存和并发安全优势,初步具备了替代目前已经发展了四十余年的C语言的潜力,有望成为未来数十年的主流系统编程语言。完成该报告后,我很快就收到了来自蒋总的邀请,希望我加入华为,继续聚焦我感兴趣的研究实践,我不假思索地就同意了。
问:您同意得非常爽快,是华为的哪些地方吸引了您?
答:这可能与我过去的经历有关。在过去几十年的学术生涯中,我一直活跃在学术研究一线,也与很多知名IT企业有过合作。但华为人给我的印象与众不同,他们讲求实干,也非常重视研究成果的落地价值。华为最吸引我的地方是兼容并蓄、追求极致的文化氛围,还有极高的执行力和凝聚力。作为一名想在高科技领域有一番作为的华人,我对华为有一种发自内心的亲切感。于是,在2020年初,我加入了华为爱尔兰研究所,开始了新的职业生涯。
02
加入华为
启动Rust探索之旅
问:刚加入华为,您能适应新环境吗?
答:我记得在面试时,面试官也曾问我:为什么在这个年纪还考虑来企业,特别是像华为这样有“狼性”的企业来奋斗?我笑了笑,说这是我对自己发挥更大价值的鞭策。离开安逸的校园,也许我还能进步;即使失败了,我也无怨无悔,可以回学校继续“知识充电”。
万事开头难。从学者到华为员工,需要经历很多转变和挑战,特别是在刚入职上岗的这段时间。因为我没有在企业全职工作的经历,而我的科研工作也一直是在单纯的学术环境下进行的,所以,我需要尽快适应华为的工作方式,学习华为特有的语言、企业文化以及背后的哲学和底层逻辑。很庆幸在这期间,我得到了很多同事的帮助,使我能够快速适应新的工作,融入新的团队。自此,我就开始了在华为研究和发展Rust语言的全新旅程。
问:您前面多次提到Rust语言。能否介绍一下,Rust语言是什么,有什么优势?
答:我先讲个小故事。2006年的一天,一名叫Graydon Hoare的程序员,因为电梯控制软件故障,被困在电梯里。获救以后,他意识到,电梯内部的软件通常是用 C++ 或 C 语言编写的,虽然代码运行速度快,但也容易引入内存错误,导致程序故障。于是,他下决心创造出一种新的编程语言,和C语言一样高效,且更加安全、可靠,甚至在未来能取代C语言,成为新一代系统编程语言。这样,就不会再有人像他一样被困在电梯里了。Graydon把这种语言命名为Rust。
今天,距离Graydon被困电梯已过去了17年,Rust语言历经发展,越来越完备,越来越受欢迎。当众多嵌入式软件使用Rust作为编程语言以后,极少再出现像C语言导致的类似故障。
所以,Rust语言是一种新兴的系统编程语言。C语言可以做的,Rust也可以,但是Rust更加安全可靠。
问:为什么华为需要Rust语言?它能给我们带来什么价值?
答:不仅华为需要Rust语言,整个世界都需要Rust语言。追求高性能、高效率、高可靠和低能耗是软件行业共同的价值观。根据我们内部研究,以及行业所发布的数据来看,在性能和能耗方面,Rust语言与C语言几乎是一样的。但是,在内存安全可靠性方面,Rust语言则遥遥领先。这意味着,采用Rust语言开发的软件,其后期的维护成本将大幅度降低。
更重要的是,在一些对安全可靠性要求比较高的场景下,Rust语言将带来无与伦比的优势,例如自动驾驶、空间探索等。对于ICT领域,高度安全可靠的软件意味着给客户承诺的KPI更容易实现。另外,因为Rust语言本身支持的函数式编程范式,可以在某种程度上打破原有算法的数据依赖关系,改进算法,优化性能。我们在某些试点项目中,也获取了这样的效果。
问:听说当时公司为Rust定了一个“三年三步走”的大目标?
答:这是可信理论、技术与工程实验室牵头,各产品线共同参与的公司级战略项目,汇聚了来自全球的华为专家、高校学者、社区专家共同参与。在这三年里,我们联合不同产品线,分阶段地进行了一系列探索、研究与开发,为我们所关心的问题寻找答案。
第一年,我们用理论和实践多路径探索的大量事实,回答了最初的研究问题,即Rust是内存安全的编程语言,性能基本可以持平C/C++语言。
第二年,我们验证了Rust现代化的工程能力可胜任产品线试点系统项目的编程需要,根据产品线反馈制定了可信编码规范初稿。
第三年,我们做好了规模推广的技术准备,制定了Rust可信编码规范正式版,适配了华为硬件的编译构建工具链,提供了完整的高安全/高性能基础库和编程框架。我们还推出了一些工具和专利技术,引领Rust社区贡献了1/3以上改进Rust语言的关键路标特性,联合Rust基金会企业会员发起了Rust规范化等重要工作,确保长期的业务连续性,以及语言和编译器的前后兼容性。
最终,我们在软件工程能力提升变革项目领导组工作会议上,正式确立Rust成为公司优选的主流系统编程语言之一。这为Rust的产品线规模化使用打开了大门,目前我们的鸿蒙与华为云已经拥有了百人级的团队正在使用Rust开发其产品组件,并取得了良好的经济效益。未来,我相信越来越多的产品线会孵化出更多的Rust应用案例。

与爱尔兰ADA实验室团队同事参加研讨会(中间为俞一峻)
03
攻坚克难
激发年轻人把学术创新落到实处
问:在这三年中,您和团队面临过什么挑战吗?如何攻坚克难的?
答:科学探索从来都不容易,充满了未知、挑战、失败和怀疑,但是克服所有困难后,终将迎来成功的喜悦。
我们有一项专利技术,是将C语言代码自动转换为Rust代码。最初,这项技术可以保证转换后代码的语义100%正确,但无法达到工程应用的标准,原因在于两点:第一,转换后代码的可读性不高;第二,转换后代码编译告警数过高,为600告警/KLOC(千行代码)。
如果仅作为学术研究,这个结果还算不错,因为它确保了100%的语义正确性。然而,我们不仅是做研究,还要将研究转化为生产力,实实在在地帮助我们的产品线。据统计,有经验的Rust程序员,手工写代码的平均告警数是 21/KLOC,这与我们的自动化工具相比,有着数量级的差异。所以,我们必须努力去优化。
在过去这一年里,我们集中团队优势力量,分析根因,不畏艰难,通过更加深入和定制化的TXL(图灵语言变换)规则定义和AST(抽象语法树)分析技术,把这个指标降低到了18/KLOC,优于人类手写代码的水平。我由衷地为能够带领这样一个充满朝气和战斗力的团队而深感荣幸。接下来,我们还将结合AI语言模型技术,持续地优化和改进工具。
问:随着您和团队不断取得突破,给公司带来了哪些价值?
答:作为一种编程语言,它的应用所带来的收益,是语言特性本身所决定的。而我们所做的工作,更多的是结合华为产品线的特点,适配一系列的工具链,让它更容易被产品线规模化使用,也就是建立相应的工程能力。这当中,包括编码规范、编译器、IDE(集成开发环境)、持续集成与交付平台等。当然,针对产品线的诉求,我们也向Rust语言社区推进一系列的特性需求,通过将这些特性列入语言发展关键路线图,被优先开发,从而快速满足产品线的需要。现在,我们在Rust社区的多个核心工作组获得了多个关键席位,奠定了良好的基础。例如,我们正在社区进行的ABI特性(抽象二进制接口)工作,就将帮助我们的产品线,在混合使用Rust与C语言的时候,在性能、安全性与二进制尺寸上获得比以前更好的表现。
至于Rust语言带来的收益,在华为和业界都有很多。我可以举个例子:华为某产品在立项初期,曾评估过若使用老的语言和技术栈实施,需要100台服务器才能满足业务容量需求;而采用Rust语言技术栈实施项目后,仅需25台服务器即满足业务需求,这意味着取得了4倍的容量与性能收益。
能取得这样的收益,一方面,说明Rust语言本身具备优势;另一方面,说明Rust语言社区生态通过这些年的高速发展,已经具备一定的成熟度,初步具备与老的技术栈一较高下的能力。更重要的是,我们要持续向社区做贡献,使Rust更好地发展,以更好地为华为和同行们服务。
问:您如何指导和培养团队中的年轻人?如何激励他们做出更大的贡献?
答:在可信理论、技术与工程实验室的开源管理中心和爱尔兰ADA实验室,有很多杰出的年轻人,每天都在充满激情地努力工作,为把Rust变得更好。在指导和培养年轻人方面,我延续了在大学时的一些做法,即通过适当的问题或课题,激发好奇心,然后引导他们去主动探索,在探索中成长。
比如,小L同学是开源管理中心的一员干将。他刚开始负责Rust开源社区的开发工作时,面临新的技术环境,对主攻方向有点迷茫,找不到适当的发力点。我启发他从社区影响力的角度切入,建议他在Rust编译器开发项目中,聚焦在某个颇具技术挑战性的并行编译路标特性,全力主攻这个特性,以提升项目在社区的影响力。最终,L同学不负众望,成功实现了这个关键特性,成为Rust社区认可的贡献者和并行编译工作组主要成员。他今年获得了公司“金牌个人”奖,也欣喜地找到了自己的“主战场”。
还有一位小C同学,她以博士后身份加入华为,擅长发表学术论文,但对如何识别并推动科研课题落地并转化为产品,缺乏经验,不知如何入手。在辅导她的过程中,我们一起梳理了产品线的关键需求,把它们翻译成学术难题,比如自动并行化、代码变换规则学习、门禁告警问题调研等。我引导她拓宽思路,把学术创新和公司的需要更紧密地结合起来。同时,我也给她一些锻炼的机会,领着她走上关键战场,担任“特战队长”,挑起大梁。她进步很快,很快完成了从“博士后”向“工程商人”的转化,在部门的Mobile Rust项目中做出了关键贡献,得到大家的认可。
04
展望未来
In Rust We Trust!
问:听说业界有些公司也在研究和应用Rust语言,您是如何与行业合作,共同推动Rust的发展的?
答:我们欣喜地看到,越来越多的IT行业头部企业和系统已将Rust作为他们的主要开发语言,并且占比越来越高。
Rust作为一种由开源社区维护和发展的编程语言,在这三年中我们也摸索出了一套成功的合作模式和经验,为华为将来需要与更多的根技术开源社区合作找到了一条可行的路径。
在我们发现Rust所具备的潜力的同时,同行们也注意到了这一点,颇有一种“英雄所见略同”的情怀。于是,在2021年2月,华为与一些友商联合成立了Rust基金会,赞助Rust社区,为Rust语言发展提供资金支持,推动它进入高速发展期。这是一种奇妙的体验,在商业上互相竞争的企业,为同一个目标聚在一起,惺惺相惜,不谈生意,只谈技术,相互合作,有点儿极客的味道。
问:听说您的团队今年获得了公司“金牌团队”奖,对此您有何感想?
答:公司上自最高领导,下到产品和内源社区开发者,还包括Rust爱好者社群,对我们做出的点滴努力充分认可。
今年,除了获得了两次STIP(重大技术创新与突破项目群团队)创新大奖以外,我们团队还获得了公司的“金牌团队”奖。再次站在蒋总身边,一起举起这份沉甸甸的奖状,我百感交集。除了感激他当年的知遇之恩,也发自内心体会到:在华为,只要不懈奋斗,必能收获沉甸甸的回报。跟我们一起奋斗的很多社区专家,在这个过程中,也有了长足的成长和进步。
问:当前公司还面临着重重困难,不断寻求突围,您怎么看待目前华为面临的这些困难?
答:虽然我加入公司时间不长,但我能切身感受到公司所面临的种种困难。这让我想起那句诗:“梅花香自苦寒来”。我们面临的困难越大,将来我们的成功才会越显得珍贵。这就像做科研,难题和困难是常态。我天生就喜欢迎难而上,去挑战它,最终突破它。虽然我们面临的困难,已不再是单纯的科研难题,但我始终坚信,在全体华为人的共同努力下,我们一定会取得最终的胜利。

在公司金牌团队奖颁奖大会上(右一为俞一峻)
问:您对未来的Rust之旅有何展望?
答:在经历了激动人心的3年之后,我们的Rust之旅进入到了全新的阶段,即对内持续推广并服务于产品线,对社区持续贡献,对学术持续研究。今年6月,爱尔兰研究所ADA实验室正式挂牌成立,承载着引领Rust开源社区持续贡献和联合高校深化相关学术研究的重任。
我们将加倍努力,在安全、性能和生产力三个维度上持续迎接Rust的新挑战与新研究,践行我们团队的箴言:“In Rust We Trust!”(相信Rust!)

蓝血研究院公开课
课程内容 课  时 开课形式  时间
《华为干部培养与训战结合赋能方法》
2天1夜 线下 待定
《企业大学:仗怎么打,兵就怎么练》 1天
线上
待定
《华为经营计划与预算预测》
2天1夜 线下 8月25-26日
《客户洞察与竞争情报》 2天1夜 线下 9月15-16 日
《战略解码工作坊》 2天1夜 线下 9月15-16日
《从战略到执行-从市场机会到经营构建》 2天1夜 线下 10月13-14日
《经营分析会,战略落地的有效手段》 2天1夜 线下 待定
《经营型组织诊断》 1天
线上 11月11日
《营销战术与大客户关系》 2天1夜 线下 待定
《驱动经营实现价值倍增的利润中心建设》 1天 线上 待定
《华为财经变革及数字化转型》 2天1夜 线下 10月28-29日
《标杆企业营销业绩倍增实战兵法》 3天2夜 线下 11月24-26日
《打造立体型激励体系》 2天1晚 线下 9月22-23日
《人才盘点与任职资格》 1天 线上 待定
《一线呼唤炮火的项目管理实践》 2天 线下 10月20-21日
《建设渠道生态,聚合千军万马》 1天 线上 11月12日

格格老师:18603075818(微信同号)
吴老师:15260211397(微信同号)
到顶部