摘要:微软计划在2030年前彻底消除其代码库中的所有C和C++代码,全面转向Rust语言。这一战略由公司杰出工程师公开提出,核心策略是结合人工智能与算法,以“1名工程师、1个月、100万行代码”的愿景重写庞大遗产代码。迁移的主要动机是解决由C/C++内存安全问题引发的、占比高达约70%的安全漏洞,以提升系统安全性并治理技术债务。目前,重写Windows内核等组件的试点工作已经展开。
线索:
* 投资机会:
1. Rust语言生态:微软的全面转向将极大提振Rust生态,其编译器、工具链、库、框架及相关开发服务(如培训、咨询)的需求可能激增。
2. AI辅助开发工具:为实现大规模自动化代码迁移与审核,专注于代码分析、自动转换和智能测试的AI开发工具赛道将迎来明确需求,微软自身也在构建相关基础设施。
3. 系统安全与软件供应链:如果迁移成功,将验证Rust在提升底层系统安全性方面的巨大潜力,可能推动金融、基础设施等对安全有严苛要求的行业加速采用,催生新的安全开发范式与解决方案。
* 潜在风险:
1. 工程复杂性风险:对微软数十亿行、深度耦合的核心代码进行全栈语言迁移,涉及性能、兼容性、第三方依赖等无数挑战,能否在2030年前按计划完成存在不确定性。
2. 技术社区与人才:此举可能加剧C/C++与Rust社区的分化,短期内面临既有C/C++开发者的转型阵痛与Rust高端人才短缺的问题。
3. 对现有生态的影响:大量基于微软C/C++ API和ABI的第三方软件、驱动及库可能需要适配,可能带来短期兼容性风险和生态扰动。
正文:
微软正在推进一项长期工程计划,目标是在2030年结束前,彻底消除其核心代码库中的C和C++代码,并全面迁移至Rust语言。这项计划涉及Windows、Azure等关键基础设施,是对全球规模最大的商业代码资产之一的系统性重构。
微软杰出工程师盖伦·亨特通过一则招聘信息明确了这一目标。他表示:“我的目标是到2030年彻底消除微软代码库中的每一行C和C++代码。”为实现该目标,策略是融合人工智能与算法技术来重写微软最大的代码库,愿景是实现“1名工程师、1个月、100万行代码”。为此,微软已构建了一个强大的代码处理基础设施,其算法基础设施能够大规模构建源代码的可扩展图,人工智能处理基础设施则能在算法引导下,应用AI代理大规模修改代码。该基础设施核心已应用于代码理解问题。
盖伦·亨特正在招聘的工程师隶属于微软CoreAI工程愿景部门的“可扩展软件工程未来”小组,该小组的使命是消除微软及其客户的技术债务。
这一迁移计划并非突然启动。早在2023年,微软就透露正在尝试使用Rust语言重写部分Windows NT内核组件。截至目前,已有部分基于Rust的组件进入Windows系统。微软副总裁大卫·韦斯顿曾表示,公司正处于Rust在Windows中应用的“爬行、行走、奔跑”阶段,并透露已用Rust重写了Windows内核中的36,000行代码,以及用于概念验证的DirectWrite Core库的152,000行代码,性能未出现退化。同时,微软Azure首席技术官马克·拉西诺维奇也已禁止开发者创建新的C/C++项目,要求改用Rust。
迁移至Rust的核心动机在于解决内存安全问题。微软在多份安全报告中指出,绝大多数高危安全漏洞源于内存安全问题。据2019年披露的数据,微软每年通过安全更新修复的漏洞中约有70%属于内存安全问题,例如缓冲区溢出、释放后使用等。C/C++语言赋予开发者精细控制内存的能力,但内存管理代码的细微疏忽便可能导致严重漏洞。Rust语言通过所有权模型和编译期检查,在语言层面系统性降低了内存错误和数据竞争风险,这对于操作系统和云基础设施具有直接的安全收益。此外,Rust在类型系统、工具链一致性和长期维护成本方面的优势,也被视为解决遗留系统技术债务的重要路径。
然而,这一目标面临现实挑战。C/C++在微软核心系统中渗透极深,涉及严格的性能约束、ABI兼容性以及复杂的第三方生态。自动化代码改写带来的正确性验证、回归测试和风险控制同样是巨大的工程难题。
技术社区对此计划反响强烈。有观点认为,C++本身并无问题,关键在于开发者的能力,且现代ISO C++标准也能实现类型安全和内存安全。有评论指出,Rust并非万能,诸如栈耗尽、堆耗尽等问题仍需经验丰富的程序员处理,真正的安全在于严谨的工程实践。也有开发者表示,曾以为借助AI和C++标准演进无需替换语言,但如今看来彻底迁移是更彻底的解决方案。
发布时间:2025-12-23 13:40



评论 ( 0 )