IT之家 4 月 1 日消息,過去兩年,Rust 編程語言風頭正勁,而 C / C++ 則略顯疲態(tài)。谷歌近日分享了他們將項目從 Go 和 C++ 代碼遷移至 Rust 的經驗,結果令人驚訝:Rust 開發(fā)者的效率竟然可以達到 C++ 團隊的兩倍。
谷歌安卓平臺工具和庫的工程總監(jiān) Lars Bergstrom 在倫敦舉行的 Rust Nation 英國峰會上分享了這一消息。過去幾年,業(yè)界對于 Rust 的安全性和可靠性一直存在疑慮。Bergstrom 指出,由于擔心“unsafe”關鍵字的存在,許多人認為使用 C++ 更為穩(wěn)妥。然而,隨著人們逐漸意識到非內存安全語言帶來的挑戰(zhàn),以及美國等國家政府將目光投向軟件在關鍵基礎設施扮演的角色,這種觀念正悄然發(fā)生改變。
Bergstrom 強調,如今美國等國家政府都愈發(fā)重視軟件在關鍵基礎設施中的作用,而絕大多數大型代碼庫的安全漏洞都源于內存安全問題。由于 Rust 代碼在恰當的使用下能有效避免此類問題,內存安全儼然成為了國家安全議題之一。
IT之家注意到,微軟 Azure 首席技術官 Mark Russinovich 早在 2022 年 9 月就建議新項目使用 Rust 取代 C / C++。如今,這種趨勢正從全新項目擴展到老舊代碼的重寫。今年早些時候,微軟號召開發(fā)人員協(xié)助將 C# 代碼移植至 Rust。網絡安全研究小組 (ISRG) 的 Prossimo 項目也正致力于用 Rust 重寫關鍵庫的核心開源部分 (例如 NTP、DNS、TLS),以提升內存安全性。
當然,并非所有人都認同這一趨勢。C++ 創(chuàng)始人 Bjarne Stroustrup 認為,通過適當的工具,C++ 也可以實現與 Rust 等內存安全語言相同的保障,且成本更低。美國國家網絡總監(jiān)辦公室發(fā)布的軟件安全報告也引來了一些評論,指出內存安全只是軟件安全挑戰(zhàn)的一部分,不應該被過分夸大??▋然仿〈髮W軟件工程研究所強調,每種編程語言都各有優(yōu)劣,選擇應以適合項目為原則。
然而,谷歌等 Rust 擁護者的實踐案例則反駁了 Stroustrup 關于成本優(yōu)勢的說法。Bergstrom 表示,將 Go 代碼 (被認為是內存安全但性能較低) 轉寫成 Rust 的過程中,谷歌取得了顯著的成效,“遷移過程所需團隊規(guī)模和時間幾乎與 Go 開發(fā)相當,并沒有降低效率。更重要的是,內存使用率降低了,漏洞率也隨之減少,代碼正確性得到提升?!?/p>
更令人驚訝的是,將 C++ 代碼遷移至 Rust 的效率提升更加明顯。“在所有案例中,用 Rust 構建和維護服務的所需工作量都減少了一倍以上,” Bergstrom 指出,“這對我們來說意義重大,因為 C++ 代碼的維護成本很高,需要龐大的團隊投入大量精力,并且存在諸多風險。”
Bergstrom 還提到,谷歌正進行類似的 Java 到 Kotlin 的遷移項目。根據內部匿名調查,兩種情況下開發(fā)者掌握新語言并達到原有開發(fā)效率所需的時間大致相同。大約三分之一的開發(fā)者在兩個月后,以及一半的開發(fā)者在四個月后表示他們在新語言中的工作效率與舊語言相當。
此外,超過一半的開發(fā)者認為 Rust 代碼更容易審查。Bergstrom 分享了一個調查中最令團隊驚訝的問題:“人們對自己團隊的 Rust 代碼的正確性有多么自信?” 調查結果顯示,有 85% 的開發(fā)者給出了肯定的答復。Bergstrom 表示,這是一個非常高的數字。
廣告聲明:文內含有的對外跳轉鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時間,結果僅供參考,IT之家所有文章均包含本聲明。