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 表示,這是一個非常高的數字 。 -- ※ 發信站: 批踢踢實業坊(pttsite.org.tw), 來自: 36.229.37.204 (臺灣) ※ 文章網址: https://pttsite.org.tw/Soft_Job/M.1714201060.A.ADD
doranako: rust好像很威,請問c++值得轉到rust嗎 04/27 15:30
hermes018: 有時間跟有興趣學的話當然好 04/27 16:25
hermes018: 但先看看現在職缺的數量差異,可能就要再想想 04/27 16:26
shortoneal: 以WASM來說,RUST的開發體驗跟GO比不知道如何 04/27 17:16
shortoneal: WASI起得來的話,應用場景應該可以更多 04/27 17:17
sunuzo: 政治圈一堆包養好嗎 04/27 17:17
JhouHank: 前陣子有聽到製造業前輩想把專案從PHP重構成NodeJS 04/27 17:32
qwe78971: 目前來看主流還是c Java 換語言先不論學習成本 舊有的 04/27 17:43
qwe78971: 系統多得是不能放棄的 新創可以轉rust試試而已 04/27 17:43
ohmylove347: 台灣rust有缺嗎?求職網搜了下感覺有10個就不錯 04/27 17:43
qwe78971: 看了一下 rust才1%左右 感覺像公關文了== 04/27 17:45
UNIQC: 有錢人一堆包養好嗎 04/27 17:45
WWIII: ++就是垃圾 04/27 17:55
Apache: 主要是原生開發的比例本來就比較少 不要說Rust C++也少 04/27 18:23
Apache: 在C++裡面又有很大比例是靠框架開發 嵌入式這種 04/27 18:24
Apache: 所以能不能換過去就要看上游框架遷移的進度 04/27 18:25
dewaro: 學生妹被包養多嗎 04/27 18:25
ab4daa: perl才是地表最強 04/27 19:08
MoonCode: 04/27 19:09
hermithsieh: 台灣資方:Rust薪資也給30K以上面議,反正有AI輔助 04/27 19:11
ssccg: 有錢的公司就能一直換最新技術造輪子,一般公司還不是要等 04/27 19:25
ssccg: 所有供應商換了才有得換 04/27 19:25
Elfego: 亞洲最大包養網上線啦 04/27 19:25
HaHadog: 比較有名的那幾個語言任何一個以開發效率而言都能把c/c++ 04/27 19:28
HaHadog: 按在地上摩擦吧 c/c++一直都是以犧牲開發效率換取程式執 04/27 19:28
HaHadog: 行效能的啊 04/27 19:28
qwe78971: 有錢公司誰跟你狂造輪子== 拿LLM來說也是誰有能力直接 04/27 19:29
qwe78971: 整個挖過來 你現在GITHUB能放個有潛力的作品 也是把人 04/27 19:29
Nicodim: 我哥上包養網被我抓包.. 04/27 19:29
qwe78971: 整個挖過去 後續代碼更新 維護也有保障 04/27 19:29
qwe78971: 開源聽起來好像沒錢賺 公司看到就兩條路 一是直接拿去 04/27 19:32
qwe78971: 營利 二是把人挖過來 後續更新維護 持續營利 規模極大 04/27 19:32
qwe78971: 的可以免費更新 靠其它方式營利 即便是擴大使用者族群 04/27 19:32
qwe78971: 也可以 只有目光短淺才選一 04/27 19:32
Foning: 有人包養過洋鬼子嗎 04/27 19:32
testPtt: 微軟不推個Rust.NET嗎 寫應用層的還是比較多吧 04/27 19:49
IhateOGC: 賣害人了 04/27 20:10
IhateOGC: 除非你都一輩子寫高階語言 04/27 20:11
refusekkk: 就會吹 04/27 20:15
a731977: RUST真的比較安全,至少記憶體上面是這樣 04/27 21:02
AKNY: 有錢人為啥都想包養 04/27 21:02
Lhmstu: 台灣別想了吧,根本沒什麼職缺 04/27 21:07
alan3100: 一般公司爛code寫下去就遺害5年以上 才沒閒人力說換就換 04/27 21:18
viper9709: 原來台灣職缺這麼少喔... 04/27 21:51
pig2014: 然後C++的效能是rust的一百倍 04/27 22:15
wei115: 感恩Rust 讚嘆Rust Rust是拯救世界的光 R門 04/27 22:22
mysister: 有人被洋鬼子包養過嗎 04/27 22:22
Kasima: 嘻嘻想看c++如何快100倍,樓上可以寫個程式來展示一下嗎 04/27 22:24
wulouise: rust跟c++在同樣情境下效能差不多吧... 04/27 22:37
wulouise: 只是你要重寫整個c++不容易,不然google會重寫chromium 04/27 22:38
etbear: 當然不可能重寫 所以Google推的語言轉換都有一定相容性 04/27 22:41
etbear: 不過Google對C++有意見一陣子了 之前還在試Carbon 04/27 22:42
cir72: 到底要多有錢才會想包養 04/27 22:42
fantasystar: 有點意外google內部有團隊特必把go專案改寫成rust 04/27 22:52
KyuubiKulama: 我猜是內部流動率太高,留下來的文件不夠完整加上 04/27 23:29
KyuubiKulama: 收進來的人沒寫過C++導致維護成本大幅提高 04/27 23:29
Apache: 其實很多人寫過 但C++的可維護性就是那麼差 04/28 00:19
Arbin: C++只有編譯效能快吧 Rust編譯前做一堆檢查會拖到編譯速度 04/28 04:20
ATrain: 閨蜜上包養網還推薦我... 04/28 04:20
Arbin: 效能大同小異R 04/28 04:20
Arbin: *程式執行效能 04/28 04:21
superpandal: 個人沒什麼動力用 特愛體量小(不論編譯器本身還是生 04/28 06:11
superpandal: 成的執行檔) 編譯速度快 效能也很好的東西 04/28 06:12
superpandal: 編譯速度當然很重要 你一個套件都要編譯半天 更別說 04/28 06:13
grado0802: 包養? 04/28 06:13
superpandal: 全系統等級的 現在軟體越來越肥 編譯又很久 換了不就 04/28 06:16
superpandal: 更久... 如果入linux核心簡直不可想像 04/28 06:19
superpandal: 編譯全系統需時十幾二十分鐘的簡直是夢幻逸品 不過絕 04/28 06:21
superpandal: 跡了 04/28 06:21
gino0717: 所以go要完了嗎 04/28 09:57
smilejin: 現在包養網都這麼直接嗎 04/28 09:57
ketrobo: 長期來看rust比較好,至少語言層級就有內建機制管理資源 04/28 10:13
achaos: 文章內編譯速度怎麼一點都沒有提,真的太慢了. 04/28 10:50
zxzx8059: yacto跑一次一個半小時,換rust不敢想 04/28 11:24
pig2014: rust在template上就是做不到cpp這麼屌,所以兩個根本是 04/28 11:49
pig2014: 懶叫比雞腿 04/28 11:49
qusekii: 歐美包養真的很平常嗎? 04/28 11:49
SkankHunt42: 豬快讓我笑死了 Rust的metaprogramming功能超強 04/28 12:17
SkankHunt42: 連個皮毛都不懂就出來在那邊B0988698088 04/28 12:18
Litfal: id變成形容詞我快笑死 04/28 13:09
wuyiulin: B0988698088 xDDD 04/28 14:13
Bencrie: 太直接了吧 XDDD 04/28 14:53
Y949731: 男友上包養網 該放生嗎 04/28 14:53
kurtsgm: 說到C++ vs others 我記得大概20年前就看過一篇文章 內容 04/28 16:23
kurtsgm: 大致是說「多少年來各種XX語言揚言要幹掉C++ 如今C++仍然 04/28 16:23
kurtsgm: 屹立不搖」 一轉眼20年過去了..... ha 04/28 16:24
kurtsgm: 2024年C++還是各種新舊語言的假想敵 哈 04/28 16:25
pig2014: 少在那邊瞎裝逼,rust metaprogramming跟cpp比多虛弱早 04/28 16:59
T730733: 是這個包養平台嗎 04/28 16:59
pig2014: 就一堆討論。他媽的你在那邊吹rust拿template來吹是三小 04/28 16:59
pig2014: ?半瓶水響叮噹?有真的把cpp的metaprogramming看進骨子 04/28 16:59
pig2014: 裡?還是他媽又是個非EECS半路出家的 04/28 16:59
pig2014: https://bit.ly/3WjBKwt 04/28 17:00
pig2014: CRTP、SFINAE、偏特化、移動語意兼完美轉發 04/28 17:02
FireStation: 交男友跟包養有什麼差別 04/28 17:02
pig2014: 現在軟體業就是一堆邪魔歪的,人人都會寫程式,每個智商 04/28 17:07
pig2014: 都有對應適合的語言,然後掌握了就以為自己神功護體,渾 04/28 17:07
pig2014: 然忘記為何以前真強者都要經過cpp的淬煉 04/28 17:07
pig2014: 現在這個時代css html都能混口飯吃,沒問題。但是學完自 04/28 17:09
pig2014: 己喜歡的語言,老二翹上天以為自己程式神人才他媽的可悲 04/28 17:09
Thobel: 包養網到底在紅什麼? 04/28 17:09
SkankHunt42: 你講的那些有誰不懂? 現在懂這種基礎就能出來吹阿XD 04/28 17:09
SkankHunt42: SNIFE、偏特化 我看你吹這些連metaprogramming都還沒 04/28 17:10
SkankHunt42: 摸到 04/28 17:10
SkankHunt42: 好啦 GGer乖乖幫我公司代工晶片啦 04/28 17:11
gino0717: 南無阿彌陀佛 04/28 17:13
Reji: 有人被包養 04/28 17:13
SkankHunt42: 現在還有人在戰語言 多學一門有很難嗎 可能對低智商 04/28 17:13
SkankHunt42: 而言多學一門是真的很難 只好暴跳如雷 04/28 17:13
Apache: 反串的蠻不錯的 04/28 17:47
wulouise: snife我真的沒聽過,跟SFINAE有關嗎? 04/28 18:14
shooter555: 兩倍不知道怎麼估的 04/28 18:16
Hathael: 求包養...管飽就好XD 04/28 18:16
Firstshadow: 各位冷靜== 04/28 19:11
WTS2accuracy: 戰語言真的無聊 等RUST缺多了不學的自然被達爾文 04/28 19:13
Csongs: 翻譯:c++工程師太貴 04/28 20:08
pig2014: 媽的就你不懂啊,rust缺東缺西結果你他媽的說自己懂在那 04/28 20:24
pig2014: 邊吹rust metaprogramming行?媽的明明就是在超模版公認 04/28 20:24
yovroc: 阿姨!我不想努力了(求包養) 04/28 20:24
pig2014: 缺乏的東西硬要說行?上面少把這件事移花接木成「戰語言 04/28 20:24
pig2014: 」。整件事是有個瞎逼在那邊吹rust無所不能連metaprogra 04/28 20:24
pig2014: mming也能與cpp平起平坐。我從來沒說rust沒存在意義,我 04/28 20:24
pig2014: 說的是rust比cpp就他媽的懶叫比雞腿,rust模板編程弱雞 04/28 20:24
pig2014: ,結果Skank自己瞎逼跳出來說rust也有metaprogramming不 04/28 20:24
helgalie: 有沒有富二代要包養 04/28 20:24
pig2014: 輸cpp,公三小? 04/28 20:24
kurtsgm: 有一件事是肯定的啦 10~15年後RUST發展的怎樣我不敢說 04/28 21:26
kurtsgm: 但八成又可以看到某新興語言又標榜自己哪裡哪裡勝過C++ 04/28 21:27
lturtsamuel: c++在哪個情境下會比rs快一百倍?跟java比都不見得快 04/28 21:45
lturtsamuel: 那麼多了 04/28 21:45
OREOMZA: 身邊有朋友被包養 04/28 21:45
lturtsamuel: c++模板元編程有幾個人懂?懂的人有幾個在用?用的人 04/28 21:47
lturtsamuel: 寫出來的東西有多少可以好好維護?90%的人需要的元編 04/28 21:47
lturtsamuel: 程功能用trait就能搞定,剩下的9.9%用 procedural ma 04/28 21:47
lturtsamuel: cro也能搞定 04/28 21:47
lturtsamuel: c++元編程這麼屌的話,怎麼還沒看到像 rust sqlx 這 04/28 21:48
punjab: 亞洲最大包養平台上線了 04/28 21:48
lturtsamuel: 種可以從資料庫推斷出型別的函式庫 04/28 21:48
lturtsamuel: 如果c++ 模板元編程這麼屌,c++20幹嘛還搞個concept 04/28 21:52
lturtsamuel: ,像過去那樣動輒噴出十幾頁的模板編譯錯誤不好嗎? 04/28 21:52
lturtsamuel: 連c++那種可笑的移動語意也能吹捧 它的移動語意這麼 04/28 21:58
lturtsamuel: 屌 幹嘛還需要 linter 來抓 use after move 錯誤?這 04/28 21:58
sashare: 這個包養網正妹好多 是真的嗎 04/28 21:58
lturtsamuel: 裡誰沒寫過幾個有bug的移動建構子?為什麼各種建構子 04/28 21:58
lturtsamuel: 和operator=之間的一致性還要由程序設計師來負責? 04/28 21:58
roccqqck: go寫的大型工具 取代java大型工具一陣子了 應該不太可能 04/28 22:46
roccqqck: 死掉 04/28 22:46
Lhmstu: go 強項在 cloud-native 吧,很難死掉 04/28 22:52
sijiex: 真的有這麼多人在找包養 04/28 22:52
leolarrel: 佩吉:"宣導一下go好嗎,薪水拿假的?" 04/29 10:49
leolarrel: 我個人站在lturtsamuel這邊 04/29 10:51
dream1124: 個人看法啦...Go嫌vm肥,但要丟卻也丟不乾淨,而且在 04/29 11:26
dream1124: 容器的世界跟別人一樣也只是個原生程序,因此除非那些 04/29 11:27
dream1124: 工具開發者特別利用Go獨有的功能開一條方便整合的路 04/29 11:27
VLADINA: 有人可以分析一下包養平台的差異嗎 04/29 11:27
dream1124: 給Go專用,否則它或許可以欺負沒有編成原生的vm語言, 04/29 11:29
dream1124: 但是跟同為原生的程式相比未必討得到太多便宜。 04/29 11:29
shooter555: 戰語言的時候 C是不是都躲在旁邊偷笑 04/29 15:07
cathychg: Google 台灣 新進員工 大部分基本行情是到那 04/29 15:18
cathychg: 古歌 台灣 基本行情 軟工的基本計價 亞虎 李建復 ㄜ 04/29 15:19
odemagus: 那個包養網人最多XD 04/29 15:19
cathychg: 台灣 雅虎 軟工的基本計價呢 ㄜㄜㄜ 04/29 15:20
cathychg: https://i.imgur.com/tP9T6bV.jpeg 04/29 15:20
cathychg: 日本 雅虎呢 04/29 15:21
cathychg: How about Japan yahoo software salary Ummmmmm 04/29 15:21
Lordaeron: 文無第一?改成武鬥如何?找相同的題目來比。 04/29 16:42
yes500: 我妹上包養網被我發現= = 04/29 16:42
Lordaeron: 真的不要去管C,反正pointer 來pointer 去就好。 04/29 16:42
viper9709: 語言武鬥傳(誤) 04/29 23:25
sp063439: 戰語言比刷題串好看多惹 05/01 02:21
kurtsgm: 語言優勢劣勢聊聊天沒啥問題 戰到臉紅脖子粗根本吃飽太閒 05/01 12:23
kurtsgm: 下了PTT還不是公司叫你用啥你就用啥 05/01 12:23
alexantiy: 隔壁桌的人竟然在討論包養... 05/01 12:23
newking761: 可是C++的職缺是你的幾十倍欸…… 05/04 21:31
Killercat: rust也是要看 .clone滿天飛的code我想記憶體效能應該 05/05 18:24
Killercat: 也不會好到哪去 =o=a 05/05 18:24
wukeke: 我們公司有Rust職缺,歡迎私訊了解 05/08 12:17