[討論] Google開發工具工程總監:Rust 開發者的

軟工

69417

Google開發工具工程總監:Rust 開發者的生產力是 C++ 的兩倍

https://bit.ly/3JASfNe

過去兩年,Rust 程式語言風頭正勁,而 C / C++ 則略顯疲態。Google近日分享了他們將
專案從 Go 和 C++ 程式碼遷移至 Rust 的經驗,結果令人驚訝:Rust 開發者的效率竟然
可以達到 C++ 團隊的兩倍。

Google Android平台工具的工程總監 Lars Bergstrom 在倫敦舉行的 Rust Nation 英國
峰會上分享了這一消息。

過去幾年,業界對於 Rust 的安全性和可靠性一直存在疑慮。Bergstrom 指出,由於擔心
「unsafe」這個關鍵字,許多人認為使用 C++ 更為穩妥。然而,隨著人們逐漸意識到非
記憶體安全語言帶來的挑戰,以及美國等國家政府將目光投向軟體在關鍵基礎設施扮演的
角色,這種觀念正悄然發生改變。

Bergstrom 強調,如今美國等國家政府都愈發重視軟體在關鍵基礎設施中的作用,而絕大
多數大型程式碼庫的安全漏洞都源於記憶體安全問題。由於 Rust 程式碼在恰當的使用下
能有效避免此類問題,記憶體安全儼然成為了國家安全議題之一。

微軟:建議新專案使用 Rust 取代 C / C++

微軟 Azure 首席技術長 Mark Russinovich 早在 2022 年 9 月就建議新專案使用 Rust
取代 C / C++。如今,這種趨勢正從全新項目擴展到老舊程式碼的重寫。今年早些時候,
微軟號召開發人員協助將 C# 程式碼移植至 Rust。網路安全研究小組 (ISRG) 的
Prossimo 項目也正致力於用 Rust 重寫關鍵庫的核心開源部分 (例如 NTP、DNS、TLS),
以提升記憶體安全性。

當然,並非所有人都認同這一趨勢。C++ 創始人 Bjarne Stroustrup 認為,通過適當的
工具,C++ 也可以實現與 Rust 等記憶體安全語言相同的保障,且成本更低。美國國家網
路總監辦公室發佈的軟體安全報告也引來了一些評論,指出記憶體安全只是軟體安全挑戰
的一部分,不應該被過分誇大。卡內基梅隆大學軟體工程研究所強調,每種程式語言都各
有優劣,選擇應以適合項目為原則。

然而,Google等 Rust 擁護者的實踐案例則反駁了 Stroustrup 關於成本優勢的說法。
Bergstrom 表示,將 Go 程式碼 (被認為是記憶體安全但性能較低) 轉寫成 Rust 的過程
中,Google取得了顯著的成效,「遷移過程所需團隊規模和時間幾乎與 Go 開發相當,並
沒有降低效率。更重要的是,記憶體使用率降低了,漏洞率也隨之減少,程式碼正確性得
到提升。」

C++ 程式碼遷移至 Rust 的效率提升明顯

更令人驚訝的是,將 C++ 程式碼遷移至 Rust 的效率提升更加明顯。

「在所有案例中,用 Rust 建構和維護服務的所需工作量都減少了一倍以上,」
Bergstrom 指出,「這對我們來說意義重大,因為 C++ 程式碼的維護成本很高,需要龐
大的團隊投入大量精力,並且存在諸多風險。」

Bergstrom 還提到,Google正進行類似的 Java 到 Kotlin 的遷移項目。根據內部匿名調
查,兩種情況下開發者掌握新語言並達到原有開發效率所需的時間大致相同。大約三分之
一的開發者在兩個月後,以及一半的開發者在四個月後表示他們在新語言中的工作效率與
舊語言相當。

此外,超過一半的開發者認為 Rust 程式碼更容易審查。Bergstrom 分享了一個調查中最
令團隊驚訝的問題:“人們對自己團隊的 Rust 程式碼的正確性有多麼自信?” 調查結
果顯示,有 85% 的開發者給出了肯定的答覆。Bergstrom 表示,這是一個非常高的數字


--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.37.204 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1714201060.A.ADD.html
doranako1樓rust好像很威,請問c++值得轉到rust嗎 04/27 15:30
hermes0182樓有時間跟有興趣學的話當然好 04/27 16:25
hermes0183樓但先看看現在職缺的數量差異,可能就要再想想 04/27 16:26
shortoneal4樓以WASM來說,RUST的開發體驗跟GO比不知道如何 04/27 17:16
shortoneal5樓WASI起得來的話,應用場景應該可以更多 04/27 17:17
JhouHank6樓前陣子有聽到製造業前輩想把專案從PHP重構成NodeJS 04/27 17:32
qwe789717樓目前來看主流還是c Java 換語言先不論學習成本 舊有的 04/27 17:43
qwe789718樓系統多得是不能放棄的 新創可以轉rust試試而已 04/27 17:43
ohmylove3479樓台灣rust有缺嗎?求職網搜了下感覺有10個就不錯 04/27 17:43
qwe7897110樓看了一下 rust才1%左右 感覺像公關文了== 04/27 17:45
WWIII11樓++就是垃圾 04/27 17:55
MoonCode12樓 04/27 17:58
Apache13樓主要是原生開發的比例本來就比較少 不要說Rust C++也少 04/27 18:23
Apache14樓在C++裡面又有很大比例是靠框架開發 嵌入式這種 04/27 18:24
Apache15樓所以能不能換過去就要看上游框架遷移的進度 04/27 18:25
ab4daa16樓perl才是地表最強 04/27 19:08
MoonCode17樓 04/27 19:09
hermithsieh18樓台灣資方:Rust薪資也給30K以上面議,反正有AI輔助 04/27 19:11
ssccg19樓有錢的公司就能一直換最新技術造輪子,一般公司還不是要等 04/27 19:25
ssccg20樓所有供應商換了才有得換 04/27 19:25
HaHadog21樓比較有名的那幾個語言任何一個以開發效率而言都能把c/c++ 04/27 19:28
HaHadog22樓按在地上摩擦吧 c/c++一直都是以犧牲開發效率換取程式執 04/27 19:28
HaHadog23樓行效能的啊 04/27 19:28
qwe7897124樓有錢公司誰跟你狂造輪子== 拿LLM來說也是誰有能力直接 04/27 19:29
qwe7897125樓整個挖過來 你現在GITHUB能放個有潛力的作品 也是把人 04/27 19:29
qwe7897126樓整個挖過去 後續代碼更新 維護也有保障 04/27 19:29
qwe7897127樓開源聽起來好像沒錢賺 公司看到就兩條路 一是直接拿去 04/27 19:32
qwe7897128樓營利 二是把人挖過來 後續更新維護 持續營利 規模極大 04/27 19:32
qwe7897129樓的可以免費更新 靠其它方式營利 即便是擴大使用者族群 04/27 19:32
qwe7897130樓也可以 只有目光短淺才選一 04/27 19:32