Rust可太香了!AWS为此拿下其编译器团队负责人
前有微软使用 Rust 代替 C/C++ 编写 Windows 组件,后有 AWS 雇佣 Rust 编译器团队联合负责人 Felix Klock,Rust 可太香了!
AWS聘请Rust编译器团队联合负责人Klock
近日,AWS发表的一篇文章表达了对 Rust 的热情,概述了自己接受该语言的几种方式。AWS 的 Matt Assay 写道,该公司越来越多地使用 Rust 构建诸如 Firecracker VMM 等关键基础设施,凭借其开箱即用的功能降低达到预期高安全性所需要的时间及精力,同时享受由其带来的可与 C 及 C++ 性能相比肩的强大运行时。
AWS 非常喜欢 Rust,并表示该公司甚至开始雇用 Rust 和 Tokio 提交者,以确保他们有必要的时间和资源来进一步改进 Rust。AWS 表示已聘用的人员包括 Sean McArthur(在 Rust 1.0 版本的“Thank-you”列表中被提名),以及著名的开发人员 Lucio Franco 和 Jon Gjengset。
该帖子还透露,AWS 最近聘用了该项目编译器的联合负责人 FelixKlock。Klock 之前曾在 Mozilla 工作,他在 LinkedIn 上的个人资料中提到他于 2020 年 8 月完成工作,当时该组织大幅裁员,然后于 10 月到达 AWS。
AWS 高级软件工程经理 Shane Miller 表示:“我们不仅为 Tokio 和 Rust 编译器雇用了几个人。
“Rust 是我们长期战略的关键组成部分,我们正在投资以提供 Amazon 规模的 Rust 工程。这包括开发人员工具、基础设施组件、互操作性和验证。”
巨头对 Rust 兴趣浓厚
Rust 是一种较为年轻的编程语言,直到 2015 年才发布 1.0 版本,但其人气丝毫未受影响。根据来自 65000 多名开发人员的调查反馈,Rust 连续五年位居 Stack Overflow“更受欢迎”编程语言榜首。同时,在 Redmonk 的编程语言排名当中,Rust 同样跻身前 20 名。考虑到 、C 以及 JavaScript 等语言几乎不可撼动的地位,这对 Rust 来说无疑是一项重大成就。
2019 年 2 月初,微软一次演讲中提到,70% 的安全漏洞都是内存安全问题。此后 7 月份,微软安全响应中心(MSRC)发文表示:微软需要更安全的系统编程语言。此后的系列文章中,微软对自己为什么认为 Rust 语言目前是业界的较佳选择做了阐述。而在 2019 年底,微软透露了使用 Rust 代替 C/C++ 编写 Windows 组件的实验感受,工程师们直言使用 Rust 语言的感受妙不可言。
我的任务是对 Windows 代码库的一个低级别系统组件进行实验性重写(目前不能透露是哪个组件),虽然这个项目还没有完成,但总的来说,在 Rust 方面的试验体验是非常好 (generally positive)。新的组件或现有的具有干净接口的组件移植到 Rust 是很容易的。
在 AWS 的文章中提到,Rust 编程语言最令人兴奋的一项特性,就在于它能够让基础设施变得“超级无聊”。在开发工作中,这种无聊是件好事,毕竟没人希望自己的电路线缆动不动就“激动”起来。AWS 已经从 Rust 项目中受益多年,也一直在努力以有意义的方式为其做出贡献。
Amazon 于 2018 年公开发布第一款使用 Rust 编写的著名产品 Firecracker,这款产品提供开源虚拟化技术,能够为 AWS Lambda 及其他无服务器产品提供支持。除此之外,Amazon 还使用 Rust 支持 Amazon Simple Storage Service(Amazon S3),Amazon Elastic Compute Cloud(Amazon EC2),Amazon CloudFront 以及 Amazon Route 53 等服务。最近,Amazon 又推出了 Bottlerocket,这是一套使用 Rust 编写而成的基于 的容器操作系统。Amazon EC2 团队还使用 Rust 作为全新 AWS Nitro System 组件(包括 Nitro Enclaves 等敏感应用程序)的指定语言。
那么,为什么 Rust 能够获得如此人气?
爽翻了的开发体验
对于习惯编写复杂系统的 C++ 开发人员来说,使用 Rust 作为开发语言就像是呼吸一股清新的空气。由于 Rust 不需要运行时或者垃圾收集器,因此它能够实现类似于 C 及 C++ 的运行时性能。
此外,Rust 还使用严格的类型系统与所有权模型在编译时进行内存与并发安全验证,由此将 Rust 的测试与验证实现成本控制在远低于 C/C++ 的水平。
Rust 的编译器的警告和错误消息编写得非常好,从而使 Rust 新手程序员可以快速识别并解决代码中的问题。
学习曲线低,社区友好
Rust 具有大量的在线文档和非常有用的编译器错误消息,对于常年使用 C++ 的开发人员来说,Rust 的学习曲线非常简单。此外,Rust 还有专门针对 C/ C++ 系统工程师的教程。Facebook 的 Jeremy Fitzhardinge 在 RustConf 2019 年的演讲中指出,他发现有经验的 C/ C++ 开发人员在大约四周内就可以上手使用 Rust,熟练使用只需要八周。
除了出色的文档外,还有诸如 Clippy 之类的有用工具,使经验丰富的 C++ 开发人员可以直接使用 Rust 进行编码,而无需那些具有 Rust 经验的人直接的帮助。
而且,Rust 社区对新人非常友好,能够吸引到很多并未参与过系统编程或开源项目的人们。
安全
为了从 Rust 获得所需的安全保证,必须围绕使用 unsafe 关键字放置严格的准则。对 FFI 函数的任何调用都应在包装函数中进行,该包装函数围绕它提供安全的抽象。同样,必须使用 unsafe 关键字的任何其他代码都应具有提供安全抽象的包装函数或结构。
实际上,除了 FFI 边界之外,只有非常基本的协议处理才需要 unsafe 关键词。在这种情况下,编写一些通用的 unsafe 代码很容易,这些代码可以进行全面的单元测试,并可以在各种情况下使用,从而使代码比 C ++ 更加安全。写惯了 Rust 代码后,你会发现写 C ++ 更加令人崩溃,因为你不能依靠编译器来确保内存安全。
除了确保安全性之外,Rust 拥有一套内部的编码标准帮助新开发人员充分利用语言。错误处理、日志记录、锁定和其他特定于语言的问题的较佳实践将更快地获得更高质量的代码。
参考链接:
https://www.infoq.cn/article/Mqz2ZRqt9Pyu0OJoavra
https://aws.amazon.com/cn/blogs/opensource/why-aws-loves-rust-and-how-wed-like-to-help/
声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!
时间:2020-12-12 21:41 来源: 转发量:次
声明:本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。
相关文章:
相关推荐:
网友评论:
最新文章
热门文章