理清头脑混沌,觉醒心智天地


今天在 知乎文章 微软看上的Rust 语言,安全性真的很可靠吗 评论区看到这样的评论:

微软到底看上 Rust 了没有?_编程语言

截图并无恶意,只是为了摆观点

看来 Rust 和 微软 宣传的还是不太够啊!

微软内部 Rust 到底应用到哪些方面 ?


正好有篇文章整理了:https://medium.com/the-innovation/how-microsoft-is-adopting-rust-e0f8816566ba

Microsoft具有世界上最大的C / C ++代码库之一。 从Windows和Office到Azure云的所有核心产品均在其上运行。 毫不奇怪,由于C ++不是一种内存安全的语言,因此在其代码库中会弹出很多内存错误,并且需要花费大量时间来修复它们。 去年,Microsoft开始研究可以帮助解决其内存安全问题的替代编程语言。 作为这些追求的结果,Microsoft已开始尝试在某些情况下将Rust集成到其代码库中。Rust是一种相对较新的编程语言,它具有与C和C ++相同的底层性能,并具有现代编程语言所期望的功能集。

微软认为Rust具有潜力,这就是他们将Rust集成到产品中的方式:

1. 要求一些工程师用Rust重写Windows的某些组件。

英特尔已经开始着手将Rust与C进行功能奇偶校验,微软可以加入这项工作。 由于Rust缺少C的某些功能,因此该团队发现Rust最适合新的或最近开发的Windows组件。 如果Microsoft完全致力于将其部分代码库迁移到Rust,也就不足为奇了。 他们已经在为Rust构建标准的Windows库,该库将具有C ++版本的所有功能。Linux也正在考虑将其某些内核迁移到Rust,因此,如果在两个操作系统之间展开激烈的竞争,看看哪个操作系统可以将Rust代码首先投入生产。

2. 将Rust整合到Azure服务中

作为Azure孵化器之一的DeisLabs专注于为Kubernetes构建工具,最近选择了Rust构建他们的新产品Krustlet,该服务允许开发人员在Kubernetes中运行多个WebAssembly模块。Kubernetes由Google开发并用Go编写。 因此,大多数工程师在编写其Kubernetes组件时往往会坚持使用Go,因此DeisLabs选择Rust令人惊讶。

最后,这个决定似乎是有回报的。 尽管员工确实注意到向Rust过渡很困难-注意到Rust的所有权理念的独特性-团队仅用了一个月的时间即可恢复全部效率。 他们发现他们为空值编写的测试更少,并且调试的问题更少。Rust的编译器也给工程师们留下了深刻的印象,他们声称Rust会发现Go的编译器未能找到的另一个项目中发现的安全漏洞。 他们得出的结论是,将来会有更多的团队考虑使用Rust,并且与Go相比,它可能更适合Kubernetes开发。

3. 用 Rust 实现一种新的编程语言

不久前,微软曾研究过如何在Rust的启发下创建他们的编程语言。 该项目的负责人之一是C#的主要维护者,因此该语言似乎是Rust的一种版本,其语法与编程语言的C系列更加相似。 这种语言称为Project Verona,旨在解决系统编程中与内存相关的错误。 有人推测,维罗纳计划最终可能会进入许多主要的Microsoft产品,例如Windows,Xbox和Azure。

最终,微软仍然没有针对Verona项目的用例。 他们确实声称该语言已经“完全内存安全”。 但是,Microsoft仍然赞成使用Rust。 它已经有了社区,并得到了Mozilla和Intel等公司的支持。 与这些公司合作将使Rust更快地变得更强大。

Rust的未来非常光明。 在大公司的支持下,社区不断壮大,它的发展前景十分广阔。 在接下来的几个月中,听到微软计划将Rust纳入其公司的不同方式也就不足为奇了。Rust还针对微控制器和IoT设备进行了优化,我们可以期待听到这些领域的公司为Rust找到的用例。

微软为Rust做了哪些贡献?



一、微软首次成为 RustConf 的赞助商之一

今年(2020年8月20)的 RustConf 大会,Google、亚马逊、微软分别是 钻石、金牌、银牌赞助商。

微软到底看上 Rust 了没有?_代码库_02

rustconf.com/

二、Microsoft Azure 为 Rust 项目的 CI 基础设施赞助了构建器。

值得注意的是,资源消耗极大的 rust-lang/rust 仓库正在使用它。但是 7 月份开始 大部分 Rust 的 CI 正在转向GitHub Actions!  然而,GitHub 现在也是微软的。


WinRT Rust 版到底是不是实验性的?


在微软官方博客 Rust / WinRT 发布公共预览版,里面写道:


长期以来,Microsoft一直依靠C ++作为我们所做工作的基础,但是它仍然面临一些挑战,尤其是在安全性方面。 如果遵循某些谨慎的约定,现代C ++无疑会使编写安全的C ++更加容易,但是在大型项目上通常很难执行。Rust是一种有趣的语言。 它在很多方面都与C ++非常相似,涉及到编译,运行时模型,类型系统和确定性终结方面的所有正确说明。 尽管它具有自己独特的学习曲线,但它也有可能解决困扰C ++项目的一些最棘手的问题,并且它是从头开始设计的,以内存安全性和安全并发为核心原则。




这是一个很早的公开预览,但是我们决定从现在开始公开。 因此,请尝试一下,让我们知道您的想法。 在继续开发Rust / WinRT并计划最终在crates.io上发布时,我们希望得到反馈。 我们还希望与现有的Win32和COM API提供更无缝的互操作,包括对支持c-com crate的c-crate的支持,而该c-crate现在支持COM-API。winrt-rs:github.com/microsoft/winrt-rs



你说它是「公开测试版」,也比「实验性的工作」更说得过去吧!

 Rust / WinRT 发布公共预览版:https://blogs.windows.com/windowsdeveloper/2020/04/30/rust-winrt-public-preview/ 


结论?


所以,微软有没有看上 Rust ? 大家见仁见智吧!