顯示廣告
隱藏 ✕
※ 本文轉寄自 ptt.cc 更新時間: 2024-04-28 18:09:04
看板 Soft_Job
作者 Lushen (pttlushen)
標題 [討論] Google開發工具工程總監:Rust 開發者的
時間 Sat Apr 27 14:57:38 2024


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 (臺灣)
※ 作者: Lushen 2024-04-27 14:57:38
※ 文章代碼(AID): #1cBA7ahT (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1714201060.A.ADD.html
doranako: rust好像很威,請問c++值得轉到rust嗎1F 04/27 15:30
hermes018: 有時間跟有興趣學的話當然好2F 04/27 16:25
hermes018: 但先看看現在職缺的數量差異,可能就要再想想
shortoneal: 以WASM來說,RUST的開發體驗跟GO比不知道如何4F 04/27 17:16
shortoneal: WASI起得來的話,應用場景應該可以更多
JhouHank: 前陣子有聽到製造業前輩想把專案從PHP重構成NodeJS6F 04/27 17:32
qwe78971: 目前來看主流還是c Java 換語言先不論學習成本 舊有的7F 04/27 17:43
qwe78971: 系統多得是不能放棄的 新創可以轉rust試試而已
ohmylove347: 台灣rust有缺嗎?求職網搜了下感覺有10個就不錯9F 04/27 17:43
qwe78971: 看了一下 rust才1%左右 感覺像公關文了==10F 04/27 17:45
WWIII: ++就是垃圾11F 04/27 17:55
Apache: 主要是原生開發的比例本來就比較少 不要說Rust C++也少13F 04/27 18:23
Apache: 在C++裡面又有很大比例是靠框架開發 嵌入式這種
Apache: 所以能不能換過去就要看上游框架遷移的進度
ab4daa: perl才是地表最強16F 04/27 19:08
MoonCode:17F 04/27 19:09
hermithsieh: 台灣資方:Rust薪資也給30K以上面議,反正有AI輔助18F 04/27 19:11
ssccg: 有錢的公司就能一直換最新技術造輪子,一般公司還不是要等19F 04/27 19:25
ssccg: 所有供應商換了才有得換
HaHadog: 比較有名的那幾個語言任何一個以開發效率而言都能把c/c++21F 04/27 19:28
HaHadog: 按在地上摩擦吧 c/c++一直都是以犧牲開發效率換取程式執
HaHadog: 行效能的啊
qwe78971: 有錢公司誰跟你狂造輪子== 拿LLM來說也是誰有能力直接24F 04/27 19:29
qwe78971: 整個挖過來 你現在GITHUB能放個有潛力的作品 也是把人
qwe78971: 整個挖過去 後續代碼更新 維護也有保障
qwe78971: 開源聽起來好像沒錢賺 公司看到就兩條路 一是直接拿去
qwe78971: 營利 二是把人挖過來 後續更新維護 持續營利 規模極大
qwe78971: 的可以免費更新 靠其它方式營利 即便是擴大使用者族群
qwe78971: 也可以 只有目光短淺才選一
testPtt: 微軟不推個Rust.NET嗎 寫應用層的還是比較多吧31F 04/27 19:49
IhateOGC: 賣害人了32F 04/27 20:10
IhateOGC: 除非你都一輩子寫高階語言
refusekkk: 就會吹34F 04/27 20:15
a731977: RUST真的比較安全,至少記憶體上面是這樣35F 04/27 21:02
Lhmstu: 台灣別想了吧,根本沒什麼職缺36F 04/27 21:07
alan3100: 一般公司爛code寫下去就遺害5年以上 才沒閒人力說換就換37F 04/27 21:18
viper9709: 原來台灣職缺這麼少喔...38F 04/27 21:51
pig2014: 然後C++的效能是rust的一百倍39F 04/27 22:15
wei115: 感恩Rust 讚嘆Rust Rust是拯救世界的光 R門40F 04/27 22:22
Kasima: 嘻嘻想看c++如何快100倍,樓上可以寫個程式來展示一下嗎41F 04/27 22:24
wulouise: rust跟c++在同樣情境下效能差不多吧...42F 04/27 22:37
wulouise: 只是你要重寫整個c++不容易,不然google會重寫chromium
etbear: 當然不可能重寫 所以Google推的語言轉換都有一定相容性44F 04/27 22:41
etbear: 不過Google對C++有意見一陣子了 之前還在試Carbon
fantasystar: 有點意外google內部有團隊特必把go專案改寫成rust46F 04/27 22:52
KyuubiKulama: 我猜是內部流動率太高,留下來的文件不夠完整加上47F 04/27 23:29
KyuubiKulama: 收進來的人沒寫過C++導致維護成本大幅提高
Apache: 其實很多人寫過 但C++的可維護性就是那麼差49F 04/28 00:19
Arbin: C++只有編譯效能快吧 Rust編譯前做一堆檢查會拖到編譯速度50F 04/28 04:20
Arbin: 效能大同小異R
Arbin: *程式執行效能
superpandal: 個人沒什麼動力用 特愛體量小(不論編譯器本身還是生53F 04/28 06:11
superpandal: 成的執行檔) 編譯速度快 效能也很好的東西
superpandal: 編譯速度當然很重要 你一個套件都要編譯半天 更別說
superpandal: 全系統等級的 現在軟體越來越肥 編譯又很久 換了不就
superpandal: 更久... 如果入linux核心簡直不可想像
superpandal: 編譯全系統需時十幾二十分鐘的簡直是夢幻逸品 不過絕
superpandal: 跡了
gino0717: 所以go要完了嗎60F 04/28 09:57
ketrobo: 長期來看rust比較好,至少語言層級就有內建機制管理資源61F 04/28 10:13
achaos: 文章內編譯速度怎麼一點都沒有提,真的太慢了.62F 04/28 10:50
zxzx8059: yacto跑一次一個半小時,換rust不敢想63F 04/28 11:24
pig2014: rust在template上就是做不到cpp這麼屌,所以兩個根本是64F 04/28 11:49
pig2014: 懶叫比雞腿
SkankHunt42: 豬快讓我笑死了 Rust的metaprogramming功能超強66F 04/28 12:17
SkankHunt42: 連個皮毛都不懂就出來在那邊B0988698088
Litfal: id變成形容詞我快笑死68F 04/28 13:09
wuyiulin: B0988698088 xDDD69F 04/28 14:13
Bencrie: 太直接了吧 XDDD70F 04/28 14:53
kurtsgm: 說到C++ vs others 我記得大概20年前就看過一篇文章 內容71F 04/28 16:23
kurtsgm: 大致是說「多少年來各種XX語言揚言要幹掉C++ 如今C++仍然
kurtsgm: 屹立不搖」 一轉眼20年過去了..... ha
kurtsgm: 2024年C++還是各種新舊語言的假想敵 哈
pig2014: 少在那邊瞎裝逼,rust metaprogramming跟cpp比多虛弱早75F 04/28 16:59
pig2014: 就一堆討論。他媽的你在那邊吹rust拿template來吹是三小
pig2014: ?半瓶水響叮噹?有真的把cpp的metaprogramming看進骨子
pig2014: 裡?還是他媽又是個非EECS半路出家的
pig2014: https://bit.ly/3WjBKwt
pig2014: CRTP、SFINAE、偏特化、移動語意兼完美轉發
pig2014: 現在軟體業就是一堆邪魔歪的,人人都會寫程式,每個智商
pig2014: 都有對應適合的語言,然後掌握了就以為自己神功護體,渾
pig2014: 然忘記為何以前真強者都要經過cpp的淬煉
pig2014: 現在這個時代css html都能混口飯吃,沒問題。但是學完自
pig2014: 己喜歡的語言,老二翹上天以為自己程式神人才他媽的可悲
SkankHunt42: 你講的那些有誰不懂? 現在懂這種基礎就能出來吹阿XD86F 04/28 17:09
SkankHunt42: SNIFE、偏特化 我看你吹這些連metaprogramming都還沒
SkankHunt42: 摸到
SkankHunt42: 好啦 GGer乖乖幫我公司代工晶片啦
gino0717: 南無阿彌陀佛90F 04/28 17:13
SkankHunt42: 現在還有人在戰語言 多學一門有很難嗎 可能對低智商91F 04/28 17:13
SkankHunt42: 而言多學一門是真的很難 只好暴跳如雷
Apache: 反串的蠻不錯的93F 04/28 17:47

--
※ 看板: Soft_Job 文章推薦值: 0 目前人氣: 0 累積人氣: 282 
分享網址: 複製 已複製
1樓 時間: 2024-04-28 18:19:36 (台灣)
  04-28 18:19 TW
Rust超強,但不適合新手
guest
x)推文 r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇