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

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

Links booklink

Contact Us: admin [ a t ] ucptt.com