英国一所大学的终身教授,因为一杯咖啡,变成了华为的工程商人
日期:2023-09-18 09:53:18 / 人气:171
于毅军教授现任华为爱尔兰研究所ADA(高级可信语言工程)实验室主任,是华为Rust语言领域的领军专家。近二十年来,在全球多所大学从事并行编译、Cache数据局部性优化、AI需求模型等课题,首创自适应系统需求控制理论。作为英国开放大学终身正教授,其学术水平在英国软件工程CS排名(全球计算机科学专业排名)中排名前六。加入华为后,他带领团队深入研究Rust语言的特性和生态,输出了多项重要成果,建立了Rust语言在产品线的应用工程能力,显著提升了华为在Rust语言社区的影响力。以下是对他的专访。
——编者按
01
与华为结缘
从峰会开始的一杯咖啡。
问:听说您在几年前的一次行业峰会上和华为有过一次难忘的交流?
答:是的,这要追溯到2019年夏天在瑞士举行的雪山峰会。在那次峰会上,我见到了华为可信理论、技术和工程实验室主任江明。那时,我们边喝咖啡边聊。我们聊了很多话题,江总裁和华为对软件工程技术的理解深度给我留下了深刻印象。我们想象新技术,如人工智能技术和软件工程的碰撞,将如何激发华为的进步...第一次深刻感受到一个企业对软件工程研究的迫切渴望。随后,受蒋院长委托,结合自己的专业知识和学术影响力,对当时与可信相关的软件工程技术进行了全面的梳理和洞察。
问:你在梳理和洞察中有什么发现?
答:在这份名为《面向语言的软件工程》的洞察报告中,我发现除了机器学习在软件工程中的应用,Rust语言相关的研究论文也呈现出增长的趋势。这种语言具有良好的执行效率、功耗性能、独特的内存和并发安全优势,有潜力取代已经发展了40多年的C语言,有望在未来几十年成为主流的系统编程语言。完成报告后,我很快就收到了蒋总经理的邀请,希望我加入华为,继续专注于我感兴趣的研究实践。我不假思索就同意了。
问:你很爽快地同意了。华为是什么吸引了你?
答:这可能和我过去的经历有关。在过去几十年的学术生涯中,我一直活跃在学术研究的第一线,与多家知名IT公司有过合作。但是,华为人给我的印象不一样。他们强调努力,非常重视研究成果的落地价值。华为最吸引我的是它包容而极致的文化氛围,以及它的高执行力和凝聚力。作为一个想在高科技领域有所作为的中国人,我对华为有着发自内心的亲近感。于是,2020年初,我加入了华为爱尔兰研究所,开始了新的职业生涯。
02
加入华为
开始Rust的探索之旅
问:刚加入华为,能适应新环境吗?
答:我记得面试的时候,面试官还问我:你这个年纪为什么还考虑来一个企业,尤其是华为这样“狼性”的企业?我笑着说,这是对我更大价值的鞭策。离开舒适的校园,也许我能进步;即使失败,我也无怨无悔,可以回学校继续“知识充电”。
最难的部分实际上是在从学者到华为员工的开始,我们需要经历许多变化和挑战,尤其是在第一次。由于本人没有企业全职工作经验,科研工作一直是在纯学术环境下进行,需要尽快适应华为的工作方式,学习华为特有的语言、企业文化、理念和底层逻辑。幸运的是,在这期间,我得到了很多同事的帮助,让我能很快适应新的工作,融入新的团队。从此,我开始了在华为研发Rust语言的全新征程。
问:你之前多次提到铁锈语。能告诉我们铁锈语是什么,有什么优点吗?
答:我先讲个小故事。2006年的一天,一位名叫格雷顿·霍尔(Graydon Hoare)的程序员被困在电梯里,原因是电梯控制软件出现故障。获救后他才知道,电梯里面的软件一般都是用C++或者C语言写的。虽然代码运行速度很快,但是很容易引入内存错误,导致程序失败。因此,他下定决心要创造一种新的编程语言,它和C语言一样高效,更安全可靠,甚至可以取代C语言,成为未来新一代的系统编程语言。这样就不会有人像他一样被困在电梯里了。格雷顿将这种语言命名为Rust。
如今,距离格雷顿被困电梯已经过去了17年。Rust语言发展了,变得越来越完整,越来越流行。当很多嵌入式软件都使用Rust作为编程语言时,类似C语言导致的类似故障很少再发生。
因此,Rust语言是一种新的系统编程语言。c语言可以,Rust也可以,但是Rust更安全可靠。
问:华为为什么需要Rust language?能给我们带来什么价值?
答:不仅华为需要Rust language,全世界都需要Rust language。追求高性能、高效率、高可靠性和低能耗是软件行业的共同价值观。根据我们内部的研究和业界公布的数据,Rust语言在性能和能耗上和C语言相差无几。但在内存安全性和可靠性方面,Rust language遥遥领先。这意味着Rust语言开发的软件后期维护成本将大大降低。
更重要的是,在一些对安全性和可靠性要求较高的场景中,Rust语言会带来无可比拟的优势,比如自动驾驶、太空探索等。对于ICT领域来说,高度安全可靠的软件意味着向客户承诺的KPI更容易实现。另外,由于Rust语言本身支持的函数式编程范式可以在一定程度上打破原有算法的数据依赖,改进算法,优化性能。我们在一些试点项目中也取得了这种效果。
问:听说公司给Rust定了一个“三年三步走”的大目标?
答:这是由可信理论、技术与工程实验室牵头,所有产品线参与的公司级战略项目。它汇集了来自世界各地的华为专家、大学学者和社区专家。在这三年里,我们结合不同的产品线,分阶段进行了一系列的探索、研发,为我们所关注的问题寻找答案。
第一年,我们用理论和实践中大量多路径探索的事实回答了最初的研究问题,即Rust是一种内存安全的编程语言,其性能基本可以和C/C++语言相当。
第二年,我们验证了Rust的现代工程能力能够胜任产品线试点系统项目的编程需求,并根据产品线反馈做出了可信编码规范初稿。
第三年做好规模推广的技术准备,制定Rust可信编码规范正式版,适配华为硬件的编译构建工具链,提供完整的高安全性/高性能基础库和编程框架。我们还引入了一些工具和专利技术,带领Rust社区贡献了超过三分之一的资金来改进Rust语言的关键标志性特性,并联合Rust基金会的企业成员启动了Rust标准化等重要工作,以确保语言和编译器之间的长期业务连续性和兼容性。
最终,我们在软件工程能力提升与变革项目领导小组工作会议上,正式将Rust确立为首选主流系统编程语言之一。这为Rust的产品线大规模使用打开了大门。目前,我们的鸿蒙系统和华为云有100人的团队,他们正在使用Rust开发他们的产品组件,并取得了良好的经济效益。未来,相信会有越来越多的产品线孵化出更多的铁锈应用案例。
与爱尔兰ADA实验室团队的同事一起参加研讨会(中间是于怡君)
03
克服困难
激励年轻人将学术创新付诸实践
问:在这三年里,你和你的团队面临过什么挑战吗?如何克服困难?
答:科学探索从来都不是一件容易的事,充满了未知、挑战、失败和疑惑,但在克服了所有困难之后,最终会迎来成功的喜悦。
我们有一个专利技术,就是把C语言代码自动转换成Rust代码。最初,这种技术可以保证转换后的代码的语义100%正确,但无法满足工程应用的标准,原因有二:一是转换后的代码可读性不高;二是转换后代码编译的告警数量过高,为600个告警/KLOC(千行代码)。
如果仅仅作为学术研究,这个结果还不错,因为保证了100%的语义正确性。但是,我们不仅做研究,还要把研究转化为生产力,真正帮助我们的产品线。据统计,有经验的Rust程序员手工编写的告警平均数量为21个/KLOC,与我们的自动化工具相差一个数量级。所以一定要努力优化。
过去的一年,我们集中团队的力量,分析根源,不畏艰难。通过更加深入和定制化的TXL(图灵语言转换)规则定义和AST(抽象语法树)分析技术,将这一指标降低到18/KLOC,优于人类手写代码的水平。领导这样一个充满活力和战斗力的团队,我感到由衷的荣幸。接下来,我们将结合AI语言模型技术,不断优化和改进工具。
问:随着你和你的团队不断取得突破,你给公司带来了什么价值?
答:作为一门编程语言,它的应用所带来的好处是由语言特性本身决定的。我们所做的就是结合华为产品线的特点,适配一系列工具链,使之更容易被产品线大规模使用,也就是建立相应的工程能力。其中包括编码规范、编译器、IDE(集成开发环境)、持续集成和交付平台等。当然,针对产品线的诉求,我们也向Rust语言社区推广了一系列的功能需求。通过将这些特性包含在语言开发的关键路线图中,我们优先考虑了开发,从而快速满足了产品线的需求。现在,我们已经在Rust社区的几个核心工作组中获得了几个关键席位,打下了良好的基础。例如,我们正在社区中开发的ABI功能(抽象二进制接口)将帮助我们的产品线在同时使用Rust和C语言时实现更好的性能、安全性和二进制大小。
至于Rust language带来的好处,华为和业界都有很多。我可以举个例子:项目初期,华为的一款产品评估,如果在旧的语言和技术栈实现,需要100台服务器才能满足业务容量需求;而在用Rust语言在technology stack中实施项目后,只需要25台服务器就可以满足业务需求,也就是说容量和性能增益是原来的4倍。
能得到这样的好处,一方面说明Rust语言本身就有优势;另一方面,说明Rust语言社区生态经过这几年的快速发展,已经达到了一定的成熟度,初步具备了与老技术栈抗衡的能力。更重要的是,我们要继续为社区做贡献,让Rust更好的发展,更好的服务华为和同事。
问:你是如何指导和培养团队中的年轻人的?如何激励他们做出更大的贡献?
答:在爱尔兰可信理论、技术与工程实验室开源管理中心和ADA实验室,有很多优秀的年轻人,他们每天都带着激情努力工作,让Rust变得更好。在引导和培养青少年方面,我延续了大学时期的一些做法,即通过适当的提问或话题激发好奇心,然后引导他们积极探索,在探索中成长。
比如小L就是开源管理中心的成员。刚负责Rust开源社区开发的时候,面对新的技术环境,对主攻方向有点迷茫,找不到合适的发力点。我启发他从社区影响力的角度出发,建议他在Rust编译器开发项目中重点关注一个技术上具有挑战性的并行编译里程碑式的特性,并围绕这个特性提升项目在社区中的影响力。最终,L不负众望,成功实现了这一关键特性,成为Rust社区认可的贡献者和并行编译工作组的主要成员。他今年获得了公司的“个人金牌”奖,欣喜地找到了自己的“主战场”。
还有一个小C同学,以博士后身份加入华为,擅长发表学术论文。但她缺乏如何确定和推广科研项目并将其转化为产品的经验,不知道如何下手。在辅导她的过程中,我们把产品线的关键需求整理在一起,翻译成学术问题,比如自动并行、代码转换规则学习、访问控制告警问题的调查等。我引导她拓宽思路,把学术创新和公司需求更紧密地结合起来。同时,我也给她一些锻炼的机会,带领她到关键战场,担任“特战队长”,挑起大梁。她进步很快,很快完成了从“博士后”到“工程商人”的转变,为部门的移动铁锈项目做出了关键贡献,得到了大家的认可。
04
展望未来
我们相信铁锈!
问:听说业内一些公司也在研究和应用Rust语言。你们如何与业界合作,共同推动Rust的发展?
答:我们欣喜地看到,越来越多的IT行业头部企业和系统已经将Rust作为主要的开发语言,比例越来越高。
Rust是一种由开源社区维护和开发的编程语言。三年来,我们也摸索出了一套成功的合作模式和经验,为华为未来与更多的根技术开源社区合作找到了一条可行的路径。
我们在发现铁锈潜在性的同时,同事们也注意到了,颇有“英雄所见略同”的感觉。因此,2021年2月,华为和一些朋友联合成立了Rust基金会,赞助Rust社区,为Rust语言的发展提供资金支持,推动其进入快速发展期。这是一次奇妙的经历。商业上相互竞争的企业为了同一个目标走到了一起。互相欣赏,不谈业务,只谈技术,互相合作,有点极客的味道。
问:我听说你的团队获得了公司今年的“黄金团队”奖。你对此有何感想?
答:公司上至高层领导下至产品和内生社区开发者,包括Rust粉丝社区,都充分认可我们的努力。
今年,我们团队除了获得两项STIP(重大技术创新与突破计划团队)创新奖外,还获得了公司的“黄金团队”奖。再次站在江主席身边,共同举起这个沉甸甸的奖项,我百感交集。除了感谢他当年的好意相约,我也从内心体会到,在华为,只要我们不懈努力,一定会收获丰厚的回报。很多和我们一起奋斗过的社区专家也在这个过程中取得了很大的进步。
问:目前公司还面临很多困难,不断寻求突破。如何看待华为面临的这些困难?
答:虽然我入职时间不长,但我能切身感受到公司面临的困难。这让我想起了那句诗:“梅花香自苦寒来”。我们面临的困难越大,我们未来的成功就越珍贵。就像做科研一样。问题和困难是常态。我天生喜欢遇到困难,挑战困难,最终突破困难。虽然我们面临的困难不再是简单的科研问题,但我始终坚信,在全体华为人的共同努力下,我们一定会取得最后的胜利。
在公司金牌团队奖颁奖大会上(右一为于怡君)
问:你对未来的Rust之旅有什么展望?
答:经过激动人心的三年,我们的Rust之旅进入了一个新的阶段,即我们将继续在内部推广和服务产品线,继续为社区做贡献,继续进行学术研究。今年6月,爱尔兰学院ADA实验室正式成立,承担着引领Rust开源社区持续贡献、联合高校深化相关学术研究的重任。
我们将加倍努力,在安全、性能和生产力三个维度上迎接Rust的新挑战和研究,践行我们团队的座右铭:“在Rust我们信任!”(信任Rust!)
▼
《蓝血研究院公开课》
作者:天富注册登录平台
新闻资讯 News
- 汽车经销商库存系数连续四个月低...12-16
- 复星旅文宣布退市,股价大涨超80...12-16
- 票价上万的高端火车游频频上新,...12-16
- 一款小游戏季度流水超10亿元,新...12-16