在放弃C/C++后,微软组建了新的团队,在Rust中重写C#代码!

在放弃C/C++后,微软组建了新的团队,在Rust中重写C#代码!

编码文章call10242025-02-06 11:02:0812A+A-

不仅在外部,而且在内部,微软正在积极增加对Rust编程语言的采用,以取代其业务线中的核心C#代码。

01 微软云服务与Rust代码保持一致

微软Rust趋势的最新成员来自Microsoft 365团队。根据他们最近的招聘信息,微软正在为Microsoft 365聘请一名全职首席软件架构师,组建一个新的团队,致力于采用Rust作为编程语言,实现全球规模平台服务的现代化等。

https://jobs.careers.microsoft.com/global/en/job/1633482/Principal-Software-Architect

在职位描述中,该职位属于Substrate App Platform组,该组是Microsoft 365核心平台组织的组成部分,是微软云服务的支柱。

“成功的候选人要么精通Rust编程语言,要么愿意在短期内成为Rust专家,同时作为倡议领导团队的一员做出贡献。职责包括指导Rust组件库和SDK的技术方向、设计和实施,以及重新实现基于Rust中C#的现有全球扩展服务,”微软表示。

02 微软全面拥抱Rust

值得注意的是,这不是微软第一次采用Rust语言。早些时候,微软Azure首席技术官Mark Russinovich在推特上敦促该行业逐步淘汰C/C++,并选择更安全的Rust语言:

“当涉及到语言时,是时候停止用C/C++启动新项目,并在需要非GC语言时使用Rust了。行业应该宣布这些语言不适用于系统,以保证安全和可靠性。”

在去年由微软主办的BlueHat安全会议上,该公司宣布计划在Rust中重写Windows内核的一部分,因为它具有现代性、易用性和整体清晰度。

随后,微软加快了“在Rust中重写一切”计划。随后有媒体报道,显示微软在Rust中重写了36,000行Windows内核代码,放弃了C/C++。与此同时,该公司在微软职业网站上发布了多个职位列表,紧急寻求Rust专家加入新团队。

此外,在2023年9月,当微软发布Azure量子开发工具包(QDK)的新预览版时,它披露了该版本主要是用Rust编写的。它可以毫不费力地针对Rust编译器支持的任何平台的本机二进制文件,并构建WebAssembly(通过wasm-bindgen)以在浏览器中运行。因此,该套件的速度提升了100倍,代码大小减少了100倍。

微软也是Rust基金会的白金会员,进一步巩固了其对该语言的承诺。

在评论这一趋势时,一些媒体表示,尽管微软最近裁员,但该公司通过持续招聘加强了对Rust技术的关注。这向科技行业的工程师和专业人士发出了一个明确的信息,即适应和获得新技能,如Rust,在竞争日益激烈的就业市场中至关重要。这也标志着一个重要的行业趋势,越来越多的公司倾向于使用更安全、更高效的编程语言,如Rust,用于其关键服务。

03 为什么Rust是热门的最爱?

当然,这不仅仅是微软;甚至Linux创建者Linus Torvalds也曾坚定地表示:“Rust尚未成为下一件大事。但我相信,明年,我们将开始集成驱动程序,甚至一些主要子系统将积极使用Rust。因此,它需要几年时间才能成为内核的重要组成部分。但它肯定会成为内核的一部分。”

此外,亚马逊的云服务、谷歌的Android、Meta/Facebook的高性能构建系统等都有Rust的存在。除了这些科技巨头,几个月前,前Facebook前端工程师、React Native和Prettier的联合创始人Vjeux在Twitter上发帖,寻求有能力的开发人员在Rust中重写前端代码格式化工具Prettier,并提供1万美元的奖励。

看看编程语言的关键功能,Rust受到这些公司青睐的原因主要有几个:

  1. 内存安全:Rust被设计为具有强大内存安全的系统级编程语言。通过所有权系统、借入检查器和生命周期系统等功能,它可以防止常见的内存错误,如零指针引用和数据竞赛。这使得在开发中编写安全和可维护的代码更容易,特别是在需要高性能和低级控制的情况下。
  2. 并发性能:Rust的所有权和借贷系统使其在并发编程方面表现出色。它允许开发人员编写高效的并发代码,而无需引入数据竞赛。借款检查器在编译时而不是运行时检查并发问题。
  3. 系统编程:Rust在系统编程中表现非常出色,因为它提供了对硬件的低级控制,并允许直接访问内存,而无需运行时系统。这使得Rust成为编写操作系统、嵌入式系统和其他需要高度控制的应用程序的理想选择。
  4. 跨平台支持:Rust具有出色的跨平台支持,可以轻松地在不同的操作系统上开发和部署应用程序。这使得Rust成为构建便携式和高性能应用程序的强大工具。
  5. 与WebAssembly(Wasm)集成:Rust自然支持WebAssembly,使其成为在客户端和服务器端构建WebAssembly应用程序的好选择。这种受欢迎程度延伸到云计算和网络开发的一些领域。

04 在Rust中重写代码需要多少钱?

对于微软来说,许多人感到困惑——仅仅因为性能原因,微软会遇到放弃C#代码的麻烦吗?毕竟,C#不像Python/Ruby那么慢。

微软官方没有提供任何进一步的技术见解。然而,一位获得高度认可的开发人员的分析揭示了这种情况:

“有趣的是,微软决定先在Rust中重写,然后聘请一名首席架构师。鉴于他们的目标是Rust,我觉得这是为非核心业务评估Rust的举措。正如其他人所指出的,为什么要用Rust替换C#?他们可能认为用Rust重写评估是值得的。我怀疑微软是否会在所有业务中全面处理Rust,直到他们对不太关键的东西进行技术评估。这个项目不在美国的事实进一步向我证实,这不是一个关键任务项目。”

总的来说,对于Rust社区来说,这是一个好消息。虽然微软目前没有用Rust取代其核心技术,但他们愿意在重要的基础服务上试验Rust。

一个用户评论亮点:

“性能、无垃圾收集、安全性——这些是微软采用Rust的关键原因。一旦你拥有了一个性能良好且相对成熟的微服务,优化运行时特性而不是实现速度是有意义的。此外,现在有更多的人使用Rust来构建项目,因此您有更经验丰富的开发人员和更成熟的软件包社区可以利用。最后,并非每家公司都适合在Rust中重写业务代码,业务代码迁移不是一夜之间就能完成的。它需要考虑各种因素,包括技术、成本和人力资源。”

您是否尝试过在项目中使用Rust语言?你的经历如何?请随时在评论中分享您的想法。



点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4