據最新消息,近年來Rust編程語言人氣飆升,相比之下,C/C++表現稍遜色。Google近期公布了一項把項目由Go或C++代碼轉換成Rust的試水計劃,所得成果令人驚艷——Rust開發者的輸出量竟高達C++團隊的兩倍。
這項發現由谷歌安卓平臺工具及庫的工程總監Lars Bergstrom在日前召開的Rust Nation英國峰會揭示。盡管此前業內對Rust的安全性和穩定性存在一定爭議,特別是其‘unsafe’關鍵字的存在令人擔憂。但現今形勢正在改變,部分原因是人們開始認識到非內存安全性所帶來的挑戰以及各國政府對關鍵基礎設施軟件安全性的關注,內存安全問題已被視為國家安全議題之一。
Bergstrom進一步指出,目前美國政府等機構高度重視軟件在關鍵基礎設施中的作用,而大型代碼庫中的大部分安全漏洞都是由內存安全性引發的。對于能夠有效防止這些問題的系統如Rust,它正逐漸成為首選。
值得注意的是,微軟Azure首席技術官Mark Russinovich早在2022年9月便呼吁新項目嘗試使用Rust替換C/C++。如今,這種趨勢已經從新項目擴大到了老舊代碼的重構。今年初,Microsoft甚至發起了將C#代碼轉化為Rust的倡議。此外,像網絡安全研究團隊的Prossimo項目,就是在努力重寫NTP、DNS、TLS等關鍵庫的核心開放源碼部分,以提高其內存安全性。
然而,并不是所有人都對此持肯定態度。C++創始人Bjarne Stroustrup堅持認為,借助合適的工具,C++同樣可以提供像Rust這樣的內存安全性,而且成本更低。而美國國家網絡總監辦公室發布的軟件安全報告也引發了相關討論,其中內存安全性只是軟件安全挑戰的一部分,不必過份放大??▋然仿〈髮W軟件工程研究所強調,任何編程語言都有其優缺點,應根據具體項目需求進行選擇。
然而,谷歌等Rust支持者的實際應用卻證明Stroustrup的觀點存在誤區。Bergstrom指出,在將Go代碼(內存安全性高但運行速度慢)轉為Rust的過程中,谷歌團隊在效率上取得了顯著提升“盡管遷移過程需要的團隊規模和時間與Go開發基本相當,但是內存利用率下降,漏洞率降低,代碼質量得以提升”。
更大的驚喜來自于C++代碼的遷移效果,“所有案例中,使用Rust構建和維護系統的勞動力減少了超過一倍”Bergstrom介紹道,“這對我們具有極大價值,因為C++代碼維護成本極高,需要巨大團隊投入大量精力,風險重重”。
此外,谷歌正在實施類似的Java至Kotlin的遷移項目。根據內部匿名調查顯示,兩種情況下開發人員掌握新語言并達到原有開發效率所需的時間大致相等。約三分之一的開發者表示,他們能用新語言在兩個月后最大程度地發揮原有的工作能力;超過一半的開發者表示在四個月后即能適應,效率不低于原來。
-
網絡安全
+關注
關注
10文章
2967瀏覽量
58751 -
C++
+關注
關注
21文章
2067瀏覽量
72962 -
Rust
+關注
關注
1文章
225瀏覽量
6414
發布評論請先 登錄
相關推薦
評論