微软正在对其庞大的代码库进行一场雄心勃勃的现代化改造,目标是在2030年前,用Rust语言结合人工智能技术,逐步淘汰所有C和C++代码。
今年7月,微软曾透露,其内部AI编程助手已用于每月超60万个拉取请求(PR)的代码审查,覆盖公司约90%的PR。12月20日,微软杰出工程师加伦·亨特(Galen Hunt)在LinkedIn上进一步阐述了这一计划的激进蓝图。
亨特表示,他的目标是在2030年之前,通过结合Rust和AI辅助,替换“每一行”C和C++代码。他的设想是赋能一名工程师在一个月内完成100万行代码的迁移工作。亨特的帖子中还附带了一则首席软件工程师的招聘广告,该职位需负责开发实现这一目标的关键工具。
“这个职位的目的是帮助我们发展和增强基础设施,以便将微软最大的C和C++系统转换为Rust,”他写道。
微软已经为此开发了一些基础工具。亨特介绍道:“我们构建了一个强大的代码处理基础设施。我们的算法基础设施能够大规模地构建可扩展的源代码图。然后,我们的人工智能处理基础设施使我们能够应用由算法指导的AI代理,大规模地进行代码更改。”
成功应聘者将加入微软的“未来可扩展软件工程”团队。亨特称,该团队的使命是“构建能力,使微软和我们的客户能够大规模地消除技术债务”。团队将与内部客户合作开发新工具,并推动其在全公司乃至整个行业的大规模部署。

图:加伦·亨特在LinkedIn上的文章
与需要手动管理内存的C/C++不同,Rust是一种内存安全语言,它通过编译器的所有权系统自动管理内存,从而有效避免缓冲区溢出、释放后使用等常见安全漏洞。近年来,各国政府均呼吁普遍采用内存安全语言以提升软件安全性,Rust是其中备受推崇的选择。
微软内部对Rust的推动早有迹可循。2022年,Azure云平台首席技术官Mark Russinovich曾公开建议将Rust作为新项目的默认语言。同年,微软操作系统安全副总裁David Weston也透露,公司计划投资约1000万美元,将Rust打造为系统编程的“一流语言”。此外,微软开发者一直在开发名为“Mini-C”的工具,尝试自动将部分C代码转换为Rust,并创建了其他工具以帮助使用Rust编写Windows驱动程序。
微软产品线极其庞大,MSportals.io网站列出了超过500个用于管理产品的活跃在线门户,外加庞大的内部IT系统。因此,重写所有C/C++代码的工作量无疑是巨大的,必将遇到大量自动化无法处理的特殊情况。
亨特在微软工作已近30年,目前隶属于CoreAI体系下的EngHorizons组织。值得注意的是,他的言论最初曾引发一些误解,促使他对原帖进行了编辑,特别澄清“Windows 并没有 用Rust和AI重写”。他坚称这是一个研究项目,旨在“开发技术,使语言之间的迁移成为可能”,而非为Windows制定新战略。
微软并非唯一拥抱Rust的大型科技公司。谷歌Android团队曾表示,采用Rust显著提升了开发效率和代码质量。美国国防高级研究计划局(DARPA)在2024年的一项计划中也探索使用AI工具将C代码翻译成Rust。
转向Rust的核心驱动力在于安全性。C和C++等语言因其内存管理方式,长期饱受内存安全漏洞的困扰。这些问题已成为企业安全的主要痛点,并引起了美国国家安全局(NSA)和网络安全与基础设施安全局(CISA)等机构的关注,它们均已发布指南,敦促组织转向使用内存安全的编程语言。与此同时,Rust在系统层的地位日益稳固,已开始在Linux内核编程中与C语言“平起平坐”。
|