整理 | 夕顏
圖源 | 視覺中國
近日,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/