查看原文
其他

AWS 聘用 Rust 编译器联合创始人,大企为何都爱 Rust?

夕颜 CSDN 2020-12-18

整理 | 夕颜
图源 | 视觉中国
出品 | CSDN(ID:CSDNnews)

近日,AWS开源团队在一篇帖子中低调宣布,已聘用Rust编译器联合创始人Felix Klock。加入AWS后,他将与于此前已经加入AWS的ust和Tokio提交者Sean McArthur(在Rust 1.0版本的“Thank-you”列表中被提名),以及著名的开发人员Lucio Franco和Jon Gjengset一起,进一步改进Rust。

      

此前,Felix Klock是Mozilla的研究工程师,负责Rust编译器、运行时库和语言设计工作,因Mozilla的一轮大规模裁员,Felix 于2020年8月离开Mozilla,10月份加入AWS。在Mozilla之前,他曾为Adobe Flash运行时的ActionScript虚拟机工作,拥有东北大学计算机科学博士学位,也是Larceny Scheme语言运行时的开发人员之一。


 

AWS为什么喜欢Rust?

 

因为喜欢,AWS已经开始赞助Rust项目,在官方博文中,AWS云与开源主管Matt Assay总结了这家云计算巨头偏爱Rust原因,以及使用这门编程语言的方式。

 

他说道,Rust最让人兴奋的一点是,是它让基础设施变得“无聊”。这不是一件坏事,毕竟没人愿意自己的设备过分“激动”,安全稳定才是他们希望看到的。因此,AWS越来越多地使用Rust构建诸如Firecracker VMM等关键基础设施,因为其开箱即用的功能降低达到预期高安全性所需要的时间及精力,同时运行时性能与C和C++相比毫不逊色。

 

AWS使用Rust编程的产品很多,第一款使用Rust编程的产品是Firecracker,这款开源虚拟化技术产品可以用来加快AWS Lambda和AWS Fargate等服务的速度和效率。除此之外,AWS还使用Rust支持Amazon Simple Storage Service(Amazon S3),Amazon Elastic Compute Cloud(Amazon EC2),Amazon CloudFront和Amazon Route 53等服务。最近,AWS推出了Bottlerocket,这是一套使用Rust编写而成的基于Linux的容器操作系统。Amazon EC2团队选择把Rust作为全新AWS Nitro System组件,包括Nitro Enclaves等敏感应用程序的语言。

 

为什么选择Rust?AWS也在博客中明确指出,是因为Rust的基本特性:性能和可靠性。

 

因为Rust不需要运行时或垃圾收集器,所以它能够实现类似于C和C ++的运行时性能。同时,Rust使用严格的类型系统和所有权模型来实现内存和并发安全性的编译时验证,从而使测试和验证Rust实现的成本大大低于C / C ++。

 

Rust和Tokio使AWS编写的服务能够快速、可靠地响应,提供更好的客户体验。


——AWS首席工程师 Carl Lerche

 

但Rust的优秀不仅在于代码。

 

Rust的确专注于为人们提供更好的体验。“因此,它吸引了很多此前未使用过Rust进行系统编程的人,包括我自己。


——AWS的软件工程师 David Barsky

 

Rust 项目维护人员对Rust也很满意:

 

  • 性能。Rust 的速度和内存效率高得夸张:无需运行时或垃圾收集器,它就能够支持性能关键服务,在嵌入式设备上运行,并轻松地与其他语言集成。
  • 可靠性。Rust 的富类型系统和所有权模型可保证内存安全和线程安全 — 并使您在编译时杜绝任何种类的漏洞。
  • 生产率。Rust 具有出色的文档、提供各种有用的错误消息且易用的编译器以及顶尖的工具 — 集成包管理器和构建工具、具有自动完成和类型检查功能的智能多编辑器支持、自动格式化程序以及其他。
 
凭借其包容性社区以及与下面类似的顶尖库:
  • Serde,用于数据的序列化和反序列化。
  • Rayon,用于编写并行和无数据竞争的代码。
  • Tokio/async-std,用于编写无阻塞的低延迟网络服务。
  • tracing,用于检测 Rust 程序以收集基于事件的结构化诊断信息
 
AWS表示,Rust的创建和辉煌的过去他们没有参与,但未来希望可以更多地为Rust的发展做贡献,包括进一步加强Rust社区,通过对Rust和Tokio(用于使用Rust编写异步应用程序的运行时)做代码贡献,以及与超过5500个Rust贡献者合作共同构建Rust社区,等等。
 

最受开发者喜爱语言,被巨头青睐

 
因为快速、可靠、代码效率高,Rust吸引了越来越多的用户群。Rust 是由 Mozilla 开发人员 Graydon Hoare 在 2006 年开发的个人项目,从那个时候起,就像它所命名的 Rust 真菌一样,开始传播,如今已被广泛应用于构建网络、嵌入式计算机、分布式服务和命令行。
 
根据超过65,000名开发人员的调查反馈,Rust已连续五年位居Stack Overflow的“最受喜爱”编程语言榜首。
             
(来源:Stack Overflow)
 
同时,在Redmonk的编程语言排名中,Rust跻身前20名,鉴于Java,C,JavaScript等语言的地位,这个成就很了不起。
              
2019年初,已经有数百家公司在软件生产中使用Rust,例如 Dropbox、Yelp 和Cloudflare等,今年这个数字更大。
 
Rust也同样被很多科技巨头青睐,比如Google、微软、苹果和Mozilla等。
 
Google的第三款操作系统——Fuchsia当初的备选语言,Rust就是其中的热门候选之一。虽然后来Google宣布Dart当选,但Rust的优点也被更多人看到,比如内存安全保证,降低了使用该语言开发的软件存在安全漏洞的风险,可以使用线性流程的代码编写异步程序等。Rust落选的原因其实有点委屈,Google之所以没有用它,是因为它最大的缺点是这种语言太新,尚未广泛使用,并且其独特的特性尚未经过充分的实践检验,但是由于Rust的性能比Go高,需要的资源更少,因此Google认为它仍有可能被认可。
 
2019年,微软安全响应中心(MSRC)发文宣布,这家公司正在探索更安全的系统编程语言,使用Rust编程语言作为C、C++和其他语言的替代方案,以此来改善应用程序的安全状况,这件事当时还引起了关于Rust的一波热议。此后,微软又陆续推出一些基于 Rust 的项目,比如开源的 Windows 运行时项目 Rust/WinRT。
 
Mozilla更不用说了,Rust就是这家公司主导开发,Mozilla将这门语言用于Firefox 的组件开发,包括核心引擎 Servo/Project Quantum。在今年8月份,Mozilla进行了本年度的第二轮大裁员,裁员约 250 人,Felix Klock不幸就是其中一个。好在Rust项目没有危险,Rust发布公告称这个项目不会受太大影响。
 
此外,新的服务器端JavaScript运行时,被视为Node.js的潜在继任者——Deno,也是采用Rust编写,并为TypeScript(Microsoft对大型JavaScript项目的扩展)提供优先级的支持,这是由微软维护和管理的JavaScript大规模项目拓展。
 
在一篇官方博客中,Rust还总结了自2015年以来Rust经历的里程碑式进步,感兴趣的小伙伴可查看原文:https://blog.rust-lang.org/2020/05/15/five-years-of-rust.html
 
正如Rust 编程语言核心团队的 Carol Nichols所说,Rust更像是Ruby、Haskell 和 Scala 的混合,它既具有功能性,如闭包和迭代器,又拥有类似于 Haskell 的丰富类型系统,低开销的特点又让它非常适合低功耗的嵌入式系统软件,同时是构建 Web 应用程序的一个不错的选择。但它的缺点也不容忽视,如与C语言自由哲学截然相反的束缚感,不能给予programmer充足的自由,并引入了复杂的规则,以及对于编程语言新手来说并不简单的设计,等等,都是限制Rust领域相对小众的原因。
 
你对Rust还有哪些期待?欢迎留言区告诉我们~
 
参考链接:
https://www.theregister.com/2020/11/27/aws_hires_rust_compiler_team/
https://aws.amazon.com/cn/blogs/opensource/why-aws-loves-rust-and-how-wed-like-to-help/
https://aws.amazon.com/cn/blogs/opensource/aws-sponsorship-of-the-rust-project/
https://www.zdnet.com/article/programming-language-rust-5-years-on-from-v1-0-heres-the-good-and-the-bad-news/

更多精彩推荐


文本分类六十年☞做数据中心,腾讯是认真的

☞首次公开!阿里巴巴云原生实时数仓核心技术揭秘

☞起底 Windows 35 年发展史

想在边缘运行计算机视觉程序?先来迎接挑战

中国区块链发展报告(2020)》导读:全球区块链政策及监管重点趋势

点分享点点赞点在看
Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存