幺妹直播官方版_幺妹直播直播视频在线观看免费版下载_幺妹直播安卓高清版下载

首頁 > 業(yè)界 > 關鍵詞  > Rust最新資訊  > 正文

接連被開源項目curl、Prisma棄用,Rust語言遭遇水逆,網(wǎng)友:從狂熱粉到后悔莫及

2025-01-06 08:51 · 稿源: 機器之心公眾號

聲明:本文來自微信公眾號“機器之心”(ID:almosthuman2014),作者:杜偉授權站長之家轉載發(fā)布。

一時之間,Rust 編程語言陷入到了接連被棄用的窘境。

作為一門系統(tǒng)編程語言,Rust 專注于安全,尤其是并發(fā)安全。它支持函數(shù)式和命令式以及泛型等編程范式的多范式語言,在語法上和 C、C++ 類似。

圖片

圖源:https://x.com/ThePrimeagen/status/1875592777440084416

就在剛剛過去的12月底,知名開源項目 curl 的創(chuàng)始人 Daniel Stenberg 宣布:將放棄支持基于 Rust 編寫的 Hyper HTTP 后端,并徹底移除相關代碼。此舉引起了開發(fā)者社區(qū)的廣泛關注。

旅程即將結束,實驗結束了。我們努力過,但還是失敗了。

圖片

2020年,Stenberg 開始在 curl 中添加對另一種 HTTP 后端的支持,它使用了基于 Rust 編寫的庫,被稱為 hyper。他的想法是引入一種替代的 HTTP 內部實現(xiàn),從而可以讓 curl/libcurl 使用它來代替本機實現(xiàn)。目標是借助 Rust 的內存安全性,為 curl 用戶提供一個更安全的 HTTP 后端實現(xiàn)。

最初的工作得到了 ISRG 的慷慨贊助,它是「Let’s Encrypt」等出色工作的背后組織。期間 Stenberg 與 hyper 首席開發(fā)人員 Sean McArthur 密切合作,并取得了很大進展。到目前為止,Stenberg 已經在 curl 中以 EXPERIMENTAL 為標簽提供了 hyper 支持,希望吸引用戶的興趣并激發(fā)他們的實驗精神。

Stenberg 表示,他們已經完成了95% 的工作,而且?guī)缀跽麄€測試套件都以相同的方式運行,無論構建 curl 時使用哪個后端。然而,正是那最后的百分之幾卻變成了最大的阻力,最終導致了項目失敗、放棄并全部撤出。

為什么呢?總結起來,主要有以下兩方面原因。

一方面,幾乎沒人有這樣的需求,curl 的用戶對 hyper 沒有興趣;現(xiàn)有的 hyper 用戶也不關心它是否兼容 curl。

另一方面,libcurl 庫是用 C 編寫的,hyper 是用 rust 編寫的,兩者之間需要一個 C 粘合層。這就需要同時精通 C 和 Rust 語言的開發(fā)者來深入研究相關的架構和協(xié)議,來推動項目進展。現(xiàn)實卻是缺乏這樣的開發(fā)者。

因此,由于預計無法在短中期內完成 hpyer 工作,并且保留代碼的成本實在太高,只能通過削減這些代碼來提供靈活性并降低復雜性。

雖然 hyper 的實驗本身失敗了,Stenberg 認為他們從中吸取了一些教訓,并在過程中改進了 curl。其實在2020年開始 hyper 項目的時候,Rust 語言本身并沒有準備好。隨著時間的推移,Rust 現(xiàn)在已經有所改進,成為一種更好的語言,并可以為類似 hyper 的項目提供更好的服務。

另外,在拋棄 hyper 之后,curl 仍然有兩個 Rust 編寫的實驗性后端支持,分別是 rustls(用于 TLS)和 uiche(用于 QUIC 和 HTTP/3)。這兩個后端在 crul 中使用了更好的內部 API,并以更干凈的方式掛接到 libcurl 中,因而相較于 hyper 更易于支持,負擔也更小。

目前,hyper 的超級后端代碼已從 git 中刪除,并且2025年2月發(fā)布的 curl8.12.0版本中將不會留下任何痕跡。

不過,雖然 hpyer 被移除了,Stenberg 對未來引入 Rust 或其他語言編寫的安全后端持開放態(tài)度。未來會采用一些不一樣的做法,畢竟與2020年開始 hyper 時相比,他們現(xiàn)在擁有了更好的內部架構。

無獨有偶,在12月初,另一個開源數(shù)據(jù)庫工具鏈項目 Prisma 也表態(tài)將從 Rust 遷移至 TypeScript,以追求更好的插件和擴展生態(tài)。

聲明中寫道:Prisma 的架構歷來限制社區(qū)貢獻,其核心功能(例如查詢解析、驗證和執(zhí)行)由 Rust 引擎管理,而這對于專注于 TypeScript 的社區(qū)來說是不透明的。因此決定將 Prisma 的核心邏輯從 Rust 遷移到 TypeScript,并重新設計 ORM,以使定制和擴展更容易。

圖片

近幾年 Rust 語言正在強勢崛起,在一些編程語言排行榜中的排名一直在攀升,比如2024IEEE Top 編程語言榜單中,Rust 的排名就很靠前。另外,用 Rust 取代 C 和 C++ 的呼聲也很高。

圖片

雖然 Rust 很強大且在安全性方面獨樹一幟,但它的學習成本也相對比較高。在一個關于「哪些原因阻止你在2025年學習 Rust」的調查中,有人拋出了一個有力的觀點:他最常用的 C/C++ 庫是同類中最好的,背后有數(shù)十年的開發(fā)經驗。對于 Rust,他要么費盡心力地繼續(xù)使用它,要么使用一些隨機、不知名、沒有血統(tǒng)的包。也有人認為,Rust 語法看起來很丑陋。

圖片

圖源:https://x.com/kai_fall/status/1875549570513658212

用了18個月,我滿滿的都是后悔

其實,在2024年初,Medium 一篇文章講述了作者花費了18月用 Rust 語言重建自己的算法交易平臺的過程。雖然費了很多心思,但最終十分后悔。一起看看在這過程中,Austin Starks 到底經歷了什么吧。

圖片

在文章開頭 Austin 就表示了他曾經十分看好 Rust,甚至是 Rust 的狂熱愛好者。Rust 看起來似乎是目前最快的、最安全編程語言之一。當然他發(fā)現(xiàn)不止自己一人這么認為。如果在網(wǎng)上閱讀有關 Rust 編程語言的文章,你很可能會遇到壓倒性的正面評價。每一篇 Medium 上的指南、每一篇 Reddit 上的帖子、每一個 Stack Overflow 上的回答 —— 一切都在贊美它。

這是故事的開始,或者說是「噩夢」的開始,Austin 決定放棄 TypeScript,將自己的整個開源算法交易系統(tǒng)重寫成 Rust。

其實,這次不好的體驗早有端倪。更早前,Austin 就寫過一篇關于使用 Rust 的經歷。他當時表示雖然非常喜歡 Rust 的速度和一些語言設計,但并不完全真正喜歡這門語言。不過文章一經發(fā)出,就遭到了猛烈的抨擊。甚至有一條高贊評論指責 Austin 是用 ChatGPT 寫的文章。這顯然已經是 AI 時代人們對文字創(chuàng)作最大的批評了。

圖片

Austin 進行了反思,或許是自己沒有給予 Rust 足夠的機會。他決定再使用一段時間 Rust。使用過后,他終于能夠自信地給出結論:

這門語言就是糟透了!!!

Rust 差在哪里?

Austin 用了幾個詞來形容來總結自己對 Rust 的厭惡:糟糕、冗長、難以理解的語法和語義。

圖片

一個復雜的 Rust 函數(shù)示例

Austin 吐槽道,說 Rust 語義不糟糕的人都是在撒謊。如果沒有一個非常強大的大型語言模型,在寫函數(shù)的時候就會有很多事情做不成。他不想花90分鐘去弄清楚 run_transaction 函數(shù)中的 where 子句。最終,他完全放棄了使用輔助函數(shù)的想法,因為根本無法讓代碼編譯通過。人們所說的 Rust 最大的優(yōu)點(嚴格的編譯器來消除錯誤)反而是 Rust 最大的缺點。

Austin 舉了個例子,如果在 Go 中編寫這個完全相同的函數(shù),代碼大概會下圖這樣。雖然函數(shù)的核心結構保持相對不變, 但代碼能直接按照預期運行,不需要做過多復雜的調整、技巧或反復的嘗試。

圖片

Go 實現(xiàn)的函數(shù)

Rust 在錯誤處理方面似乎有些優(yōu)勢。只要你避免使用不安全的 unwrap 來減少運行時錯誤(例如空指針異常),就可以確定代碼會運行并持續(xù)運行。真的是這樣嗎?Austin:不!

他指出當數(shù)據(jù)出錯或發(fā)生意外時,開發(fā)者很難快速診斷問題,因為錯誤信息往往不夠直觀,開發(fā)者可能很難弄明白錯誤的根本原因。他自嘲,可能自己沒有找到啟用堆棧跟蹤的正確方法,這讓調試變得更加困難。

圖片

Austin:我的堆棧跟蹤在哪兒???

相比之下,Python 能夠提供堆棧跟蹤,精確告訴你發(fā)生了什么,甚至到行號。Austin 表示,就算是 Go 語言,也有 errors.Wrap (...),讓你能夠查看整個錯誤堆棧。顯然,這是 Rust 的設計缺陷。

除了 Rust 的設計缺陷,社區(qū)氛圍也是難評。Austin 表示,社區(qū)不能接受別人提出 Rust 有缺陷這個觀點。發(fā)表的看法會遭到攻擊,提出的問題也只能收獲陰陽怪氣。

圖片

Austin 在 Rust 社區(qū)中收到的「有用」回復

你有用過 Rust 嗎?在評論區(qū)分享一下你的體驗吧。

拓展閱讀:半小時入門 Rust,這是一篇 Rust 代碼風暴

參考鏈接:

https://www.prisma.io/blog/prisma-orm-manifesto

https://daniel.haxx.se/blog/2024/12/21/dropping-hyper/

https://spectrum.ieee.org/top-programming-languages-2024

https://medium.com/codex/i-spent-18-months-rebuilding-my-algorithmic-trading-in-rust-im-filled-with-regret-d300dcc147e0

舉報

  • 相關推薦
  • 吳克群騎電動車街邊買果上熱搜 網(wǎng)友:很接地氣

    在廣西南寧發(fā)生了一件引起網(wǎng)友熱議的趣事。12月29日,多位網(wǎng)友通過視頻分享了他們在南寧街頭偶遇知名歌手吳克群的一幕。吳克群的這次南寧之行,不僅給偶遇他的人們帶來了驚喜,也展現(xiàn)了他作為公眾人物的親和魅力。

  • 誤殺3最后10分鐘cpu干燒了 網(wǎng)友直呼過癮

    12月31日,隨著電影《誤殺3》的熱映,微博話題“誤殺3最后10分鐘cpu干燒了”迅速升溫,成為網(wǎng)友熱議的焦點。眾多觀眾在觀看完影片后,對電影的結局部分給予了極高的評價?!墩`殺3》的上映,無疑延續(xù)了這一IP的輝煌,再次證明了其在觀眾心中的地位。

  • ChatGPT終于也推出Projects功能,卻故意露出一個“AGI”的項目

    在OpenAI“雙十二”的第七天,一種全新的對話交互模式誕生——Projects。它“長”在這兒,主頁的左側導航欄中:如其名,Projects的功能就是按照項目來組織和管理文件,正如官方介紹的那樣:操作上也很簡單。同樣是先上傳所需的文件,以及自定義指令:只需一句Prompt,Projects就能幫你生成修改個人網(wǎng)站對應的代碼了:最后,一個復制粘貼的動作,網(wǎng)站就變成想要的樣子啦:OneMoreThing

  • 遠處走來的是模特媽媽和她的逆子 網(wǎng)友:離挨打不遠了

    一位網(wǎng)友在社交媒體上分享了一段視頻,一位身材高挑的模特媽媽正帶著她的孩子走在街上。孩子以一種搞怪的姿勢走路媽媽則顯得有些無奈。許多人表示,育兒過程中充滿了各種意想不到的瞬間,父母需要耐心和幽默感來應對這些小插曲。

  • 徐志勝上臺領獎走出了被綁架的感覺 網(wǎng)友:偷感很重

    1月4日,在星光大裳紅毯上,脫口秀演員徐志勝與李雪琴、李嘉琦一同亮相,迅速成為全場的焦點。徐志勝、李雪琴和李嘉琦三位好友攜手走上紅毯,本應是一個星光熠熠、自信滿滿的時刻。網(wǎng)友們對此紛紛調侃,表示“徐志勝,你被綁架了就眨眨眼!”這一幽默的場景不僅讓人捧腹,也為紅毯增添了不少歡樂氣氛。

  • 哈爾濱跨年人擠人但沒人踩井蓋 網(wǎng)友:獨特的風景線

    黑龍江哈爾濱的中央大街在跨年夜迎來了熙熙攘攮的人群,然,在這片熱鬧非凡的街道上,一個特別的現(xiàn)象引起了人們的注意:盡管人潮涌動,井蓋周圍卻意外地空出了一片“凈土”。這被視作東北人基因中倔強性格的體現(xiàn),他們寧愿繞道行,也不愿意踩在井蓋上,這一行為展現(xiàn)了當?shù)厝藢Π踩闹匾暫鸵环N獨特的文化習慣。這種集體行為不僅減少了意外事故的風險,也體現(xiàn)了社區(qū)成員之間的相互關懷和對公共秩序的尊重。

  • 男子以冰面為紙寫書法 網(wǎng)友:別有一番韻味

    在2024年的歲末,黑龍江哈爾濱的一位男子以其獨特的書法表演吸引了公眾的目光。他將冰面作為畫布,陽光下閃閃發(fā)光的冰面與他優(yōu)美的書法相得益彰,呈現(xiàn)出一種別具一格的藝術韻味。通過這種方式,書法藝術得到了新的詮釋,也為傳統(tǒng)文化的傳承與發(fā)展提供了新的思路。

  • 網(wǎng)友希望在火星玩游戲 馬斯克:星鏈完全可實現(xiàn)

    據(jù)報道,埃隆馬斯克在社交平臺上發(fā)文稱,他在乘坐飛機時通過星鏈體驗了《流放之路2:灰燼仲裁者》。馬斯克贊嘆道:星鏈太厲害了,甚至在飛機上也能實時玩電子游戲!”對此,一位游戲愛好者評論道:想象一下在火星上打游戲!星鏈能連接世界,甚至超越地球。馬斯克本人對游戲的熱愛溢于言表,他認為游戲不應被簡單地視為時間的消耗,相反,它們是激發(fā)活力、培養(yǎng)人們解決復雜問題和面對挑戰(zhàn)能力的絕佳平臺。

  • 山姆新品價格跳109元降到19.9元 網(wǎng)友:難吃一股餿飯味

    快科技12月26日消息,近日,據(jù)媒體報道,有網(wǎng)友發(fā)帖稱,山姆一款名為芝士菠菜洋薊球的產品從109元降價至19.9元。但山姆客服對此表示,此款商品價格波動不支持價保服務。據(jù)悉,網(wǎng)友在品嘗這款食物時,感覺很難吃,還有一股餿飯味,而且這款商品價格和自己購買時相比,還出現(xiàn)了大跳水。對此,有山姆客服工作人員解釋說,不同時期商品會有不同的促銷活動,不同活動會產生差價,此次降價可能是由于口感差異或促銷活動導致。公司定價時會考慮山姆的政策,此商品無法提供保價服務。值得關注的是,據(jù)山姆超市APP 顯示,該款商品在紹興山姆超市也?

  • 爸爸想到女兒嫁人瞬間破防大哭:引發(fā)眾多網(wǎng)友共鳴

    1月4日,在河北,一位父親在女兒睡前向他表達愛意后,突然想到了女兒將來出嫁的場景,情緒失控,瞬間大哭起來。這一幕被記錄下來并分享到社交媒體上,引發(fā)了眾多網(wǎng)友的共鳴和討論。這一事件也引發(fā)了人們對家庭情感和子女成長的關注,促使人們思考如何更好地支持和陪伴子女成長。

熱文

  • 3 天
  • 7天