[討論] Google開發工具工程總監:Rust 開發者的
看板Soft_Job (軟體人)作者Lushen (pttlushen)時間7月前 (2024/04/27 14:57)推噓35(43推 8噓 98→)留言149則, 52人參與討論串1/4 (看更多)
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
推
04/27 15:30,
7月前
, 1F
04/27 15:30, 1F
推
04/27 16:25,
7月前
, 2F
04/27 16:25, 2F
→
04/27 16:26,
7月前
, 3F
04/27 16:26, 3F
→
04/27 17:16,
7月前
, 4F
04/27 17:16, 4F
→
04/27 17:17,
7月前
, 5F
04/27 17:17, 5F
推
04/27 17:32,
7月前
, 6F
04/27 17:32, 6F
推
04/27 17:43,
7月前
, 7F
04/27 17:43, 7F
→
04/27 17:43,
7月前
, 8F
04/27 17:43, 8F
推
04/27 17:43,
7月前
, 9F
04/27 17:43, 9F
→
04/27 17:45,
7月前
, 10F
04/27 17:45, 10F
→
04/27 17:55,
7月前
, 11F
04/27 17:55, 11F
推
04/27 17:58,
7月前
, 12F
04/27 17:58, 12F
推
04/27 18:23,
7月前
, 13F
04/27 18:23, 13F
→
04/27 18:24,
7月前
, 14F
04/27 18:24, 14F
→
04/27 18:25,
7月前
, 15F
04/27 18:25, 15F
推
04/27 19:08,
7月前
, 16F
04/27 19:08, 16F
噓
04/27 19:09,
7月前
, 17F
04/27 19:09, 17F
推
04/27 19:11,
7月前
, 18F
04/27 19:11, 18F
→
04/27 19:25,
7月前
, 19F
04/27 19:25, 19F
→
04/27 19:25,
7月前
, 20F
04/27 19:25, 20F
推
04/27 19:28,
7月前
, 21F
04/27 19:28, 21F
→
04/27 19:28,
7月前
, 22F
04/27 19:28, 22F
→
04/27 19:28,
7月前
, 23F
04/27 19:28, 23F
→
04/27 19:29,
7月前
, 24F
04/27 19:29, 24F
→
04/27 19:29,
7月前
, 25F
04/27 19:29, 25F
→
04/27 19:29,
7月前
, 26F
04/27 19:29, 26F
→
04/27 19:32,
7月前
, 27F
04/27 19:32, 27F
→
04/27 19:32,
7月前
, 28F
04/27 19:32, 28F
→
04/27 19:32,
7月前
, 29F
04/27 19:32, 29F
→
04/27 19:32,
7月前
, 30F
04/27 19:32, 30F
推
04/27 19:49,
7月前
, 31F
04/27 19:49, 31F
推
04/27 20:10,
7月前
, 32F
04/27 20:10, 32F
→
04/27 20:11,
7月前
, 33F
04/27 20:11, 33F
噓
04/27 20:15,
7月前
, 34F
04/27 20:15, 34F
推
04/27 21:02,
7月前
, 35F
04/27 21:02, 35F
推
04/27 21:07,
7月前
, 36F
04/27 21:07, 36F
→
04/27 21:18,
7月前
, 37F
04/27 21:18, 37F
推
04/27 21:51,
7月前
, 38F
04/27 21:51, 38F
噓
04/27 22:15,
7月前
, 39F
04/27 22:15, 39F
還有 70 則推文
→
04/28 21:45,
7月前
, 110F
04/28 21:45, 110F
→
04/28 21:47,
7月前
, 111F
04/28 21:47, 111F
→
04/28 21:47,
7月前
, 112F
04/28 21:47, 112F
→
04/28 21:47,
7月前
, 113F
04/28 21:47, 113F
→
04/28 21:47,
7月前
, 114F
04/28 21:47, 114F
→
04/28 21:48,
7月前
, 115F
04/28 21:48, 115F
→
04/28 21:48,
7月前
, 116F
04/28 21:48, 116F
推
04/28 21:52,
7月前
, 117F
04/28 21:52, 117F
→
04/28 21:52,
7月前
, 118F
04/28 21:52, 118F
推
04/28 21:58,
7月前
, 119F
04/28 21:58, 119F
→
04/28 21:58,
7月前
, 120F
04/28 21:58, 120F
→
04/28 21:58,
7月前
, 121F
04/28 21:58, 121F
→
04/28 21:58,
7月前
, 122F
04/28 21:58, 122F
推
04/28 22:46,
7月前
, 123F
04/28 22:46, 123F
→
04/28 22:46,
7月前
, 124F
04/28 22:46, 124F
推
04/28 22:52,
7月前
, 125F
04/28 22:52, 125F
→
04/29 10:49,
7月前
, 126F
04/29 10:49, 126F
→
04/29 10:51,
7月前
, 127F
04/29 10:51, 127F
推
04/29 11:26,
7月前
, 128F
04/29 11:26, 128F
→
04/29 11:27,
7月前
, 129F
04/29 11:27, 129F
→
04/29 11:27,
7月前
, 130F
04/29 11:27, 130F
→
04/29 11:29,
7月前
, 131F
04/29 11:29, 131F
→
04/29 11:29,
7月前
, 132F
04/29 11:29, 132F
→
04/29 15:07,
7月前
, 133F
04/29 15:07, 133F
→
04/29 15:18,
7月前
, 134F
04/29 15:18, 134F
→
04/29 15:19,
7月前
, 135F
04/29 15:19, 135F
→
04/29 15:20,
7月前
, 136F
04/29 15:20, 136F
→
04/29 15:20,
7月前
, 137F
04/29 15:20, 137F
→
04/29 15:21,
7月前
, 138F
04/29 15:21, 138F
→
04/29 15:21,
7月前
, 139F
04/29 15:21, 139F
→
04/29 16:42,
7月前
, 140F
04/29 16:42, 140F
→
04/29 16:42,
7月前
, 141F
04/29 16:42, 141F
推
04/29 23:25,
7月前
, 142F
04/29 23:25, 142F
推
05/01 02:21,
6月前
, 143F
05/01 02:21, 143F
推
05/01 12:23,
6月前
, 144F
05/01 12:23, 144F
→
05/01 12:23,
6月前
, 145F
05/01 12:23, 145F
推
05/04 21:31,
6月前
, 146F
05/04 21:31, 146F
推
05/05 18:24,
6月前
, 147F
05/05 18:24, 147F
→
05/05 18:24,
6月前
, 148F
05/05 18:24, 148F
推
05/08 12:17,
6月前
, 149F
05/08 12:17, 149F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 4 篇):
Soft_Job 近期熱門文章
52
206
15
92
PTT職涯區 即時熱門文章
689
1490
106
189