合合信息啟信產(chǎn)業(yè)大腦攜手市北新區(qū)打造“一企一畫像”平臺,加速數(shù)字化轉型重慶:力爭今年智能網(wǎng)聯(lián)新能源汽車產(chǎn)量突破 100 萬輛,到 2027 年建成萬億級產(chǎn)業(yè)集群微信iOS最新版上線:iPhone用戶可在朋友圈發(fā)實況照片了蘋果有線耳機或?qū)⑼.a(chǎn)沖上熱搜!閑魚相關搜索量暴漲384%2024 vivo開發(fā)者大會官宣:OriginOS 5/自研藍河系統(tǒng)2降臨真·AI程序員來了,阿里云「通義靈碼」全面進化,全流程開發(fā)僅用幾分鐘東方甄選烤腸全網(wǎng)銷量及銷售額領先鴻蒙PC要來了 界面很漂亮!余承東:目前華為PC將是最后一批搭載Windows上半年中國AR/VR出貨23.3萬臺,同比下滑了 29.1%IDC:2024 上半年中國 AR / VR 頭顯出貨 23.3 萬臺,同比下滑 29.1%英特爾AI加速器Gaudi3下周發(fā)布,挑戰(zhàn)NVIDIA統(tǒng)治地位!大屏技術邂逅千年色彩美學!海信激光電視成為電影《只此青綠》官方合作伙伴OpenAI將最新AI模型o1擴展到企業(yè)和教育領域三星新專利探索AR技術新應用:檢測屏幕指紋殘留,提高手機安全性猛瑪傳奇C1:直播圖傳技術的革新者JFrog推出首個運行時安全解決方案,實現(xiàn)從代碼到云的全面軟件完整性和可追溯性亞馬遜推出一大波生成式 AI 工具,購物體驗全面升級機器人公司1X推出世界模型Apple Intelligence測試版現(xiàn)已開放革命性AI對話系統(tǒng)Moshi問世:機器也能說人話了?
  • 首頁 > 數(shù)據(jù)存儲頻道 > 數(shù)據(jù)庫頻道 > 軟件架構

    Rust,你放棄幾次了?

    2022年12月21日 10:09:46   來源:51CTO

      2022,越來越多的開發(fā)者會發(fā)現(xiàn),組長開始讓自己組用 Rust 來重構項目了,即便是組長不 Push,身邊的同事好像也在悄咪咪地練習“borrow checker”,有時還會看見同事對著屏幕發(fā)飆:什么玩意兒,不倒騰了!

      網(wǎng)友戲稱:只需要十行 Rust 代碼,就能讓你果斷放棄!

      學 Rust 難,已經(jīng)是一個共識。然而,那些吐槽難的同學,往往會過一段時間重新操練起來,屢戰(zhàn)屢敗,屢敗屢戰(zhàn)。曾有一位資深的技術大牛吐槽:我放棄 Rust 已經(jīng)四次了!

      Rust 讓人既愛又恨,恨得腦袋火冒三丈,直噴這代碼連鍵盤都不夠敲了,但又每次看到 Github 上的項目運行得如此高效優(yōu)雅,讓人卻之不恭。

      來源:知乎

      1、Rust 魅力所在

      企業(yè)對于 Rust 的吹捧已非一時興起。

      以近日電商行業(yè)軟件開發(fā)商 Shopify 宣布擁抱 Rust 為例,Shopify 從一致性、性能、社區(qū)、生產(chǎn)力、安全等 5 個方面闡述了 Rust 對于其業(yè)務的吸引力和評估考量。

      業(yè)務需求一致對口,性能高效,入門雖然難但開發(fā)還挺高效,社區(qū)驅(qū)動的開源項目,內(nèi)存安全?梢哉f Shopify 已經(jīng)把 Rust 的每個好處都說了個遍。

      一致性:Shopify 的系統(tǒng)編程需要覆蓋多個領域,而且隨著時間的推移,這個數(shù)字可能會增加。它們包括高性能服務器、提高性能或連接到其他庫的 Ruby 擴展,以及編譯到 Web Assembly。Shopify 訴求是對單一語言進行投資,并將其應用到眾多領域,這意味著要確定一種可以非常靈活使用的語言。

      性能:Shopify 需要能夠高效、可持續(xù)地擴展,以支持全球商業(yè)。Rust 為我們提供了可預測的本機代碼性能,包括對內(nèi)存使用的精細控制,這使得它適合于我們堆棧的最低級別。當然,Rust 并不是唯一能夠提供或近似這種性能的語言。在此基礎上,還可以考慮使用現(xiàn)代 C++,如果垃圾收集器的分配行為和性能可以接受,則可以使用 Go。

      社區(qū):Rust 語言和生態(tài)系統(tǒng)由一個健康的社區(qū)驅(qū)動,Shopify 計劃像 Ruby、Rails、React Native 和其他開源項目一樣參與這個社區(qū)。Rust 的 RFC 過程和治理結構為包容性、深思熟慮的討論提供了強大的基礎,以推動語言和工具的未來。我們的貢獻不僅有望使 Rust 在 Shopify 的使用中更加高效,而且還將改善所有 Rust 開發(fā)人員的工作。這也是 Shopify 加入 Rust 基金會的原因。我們希望支持 Rust 優(yōu)秀的治理模式和“Rust commons”的維護,并將 Shopify 的知識和觀點帶入更大的 Rust 對話中。

      生產(chǎn)力:在某些圈子里,Rust 以難以學習和使用而聞名,但 Shopify 內(nèi)部和外部的開發(fā)人員發(fā)現(xiàn),在最初的學習期之后,他們使用 Rust 構建起來非常高效和舒適。Rust 還有一個強大的庫生態(tài)系統(tǒng)(“crates”)和良好的 IDE 集成工具,當然還有非常好的編譯器錯誤消息。類型和宏系統(tǒng)的強大功能允許非常有表現(xiàn)力的 API 和語法,將開發(fā)人員的精力集中在表達他們的意思上,而不是在頭腦中玩弄大量的狀態(tài)和不變量。Go 在這里也有很好的聲譽,C 和 C++ 就不那么好了。

      安全:Rust 提供了許多讓編譯器幫助確保程序正確的工具,包括它們安全地管理內(nèi)存,并且可以“無畏地并行”。隨著 Shopify 對 Rust 的使用越來越復雜,將找到更多的方法來使用 Rust 的類型系統(tǒng)和安全規(guī)則來保持系統(tǒng)中的不變量。從我們最初的項目中,我們發(fā)現(xiàn)與我們評估的其他語言相比,Rust 在編譯時而不是運行時暴露更多的錯誤。Rust 開發(fā)者經(jīng)常說“部署沒問題”,原因就在于此。

      2、背后推手

      Rust 在編程語言界內(nèi)算是年輕一輩,但能在 Stack Overflow 開發(fā)者調(diào)查的“最受喜愛編程語言”評選項目中連續(xù)七年摘下桂冠,足以說明背后實力不俗。

      這種實力,除了 Rust 本身的特質(zhì),更多的則來自于多家頂級大型公司或者名人的背書。

      外界耳熟能詳?shù)目赡芤讓傥④洝?019 年 2 月發(fā)布報告稱 70% 的安全問題為內(nèi)存安全問題,為了解決安全問題,開始嘗試使用 Rust 來代替 C/C++ 重寫 Windows 組件;微軟的 DeisLabs 團隊也選擇 Rust 來構建 Kubernetes 工具 Krustlet,并稱 Rust 比 Go 更適合 Kubernetes 的開發(fā) 。

      再比如 Facebook: 從 2016 年開始使用 Rust,當時啟動了一個名為 Mononoke 的重寫項目;有 Mononoke 項目作為 Rust 語言是可行的,2019 年內(nèi)部 Rust 開發(fā)團隊達到了 100 人,并開始應用于 Diem 區(qū)塊鏈項目;2020 年在內(nèi)部成立了 Rust 開發(fā)者體驗團隊,繼續(xù)為 Rust 社區(qū)做貢獻,并支持內(nèi)部 Rust 項目開發(fā) 。

      還有谷歌:2016 年開始開發(fā)的 Fuchsia 操作系統(tǒng),在 2020 年 12 月首次亮相于 google open source,其中 22% 的代碼為 Rust 編寫 。

      值得一提的是,安全的語言特性與區(qū)塊鏈的特性天生有重合性,因此區(qū)塊鏈也成為較早引入 Rust 語言的領域之一。Gavin Wood 博士開發(fā)的 Parity 客戶端應該是首個使用 Rust 的區(qū)塊鏈項目,于 2015 年推出,Parity Technologies 的產(chǎn)品還包括 Polkadot、substrate 等 。Parity 一經(jīng)發(fā)布在當時引起了不小的轟動。

      對了,Mozilla 作為 Rust 項目的孵化起源地,F(xiàn)ireFox 瀏覽器原本計劃全部用 Rust 重寫,但事與愿違,最后只完成了不到 10% 的比例,整個 Rust 項目就被砍掉了!不過正是因為被砍,才讓 Rust 得以有了今天遍地開花的局面。

      許多技術圈內(nèi)的大佬對 Rust 也是推崇備至,Linux 便是其中之一。

      由 Linux 基金會主辦的 2022 開源峰會上,Linus 宣布:Linux 開始擁抱 Rust!

      不久,Azure CTO Mark Russinovich 甚至在 9 月呼吁停用 C/C++,建議使用 Rust,一時引起網(wǎng)友熱議。

      而時任微軟首席工程師的 Nick Cameron 在個人博客經(jīng)常看到 Rust 的字眼,并給出了許多中肯的 Rust 發(fā)展建議。

      甚至 Python 的創(chuàng)始人 Guido van Rossum,不惜自損 Python 4.0 也要夸一夸 Rust。Guido 表示 Python 4.0 很難看到曙光,并認為 Rust 是一種迷人的語言,幾乎可以完美地處理內(nèi)存管理問題。

      視線拉回國內(nèi),華為、阿里、百度、字節(jié)等企業(yè)都已經(jīng)入局了 Rust。華為作為國內(nèi)唯一 Rust 基金會創(chuàng)始成員,可以說在 Rust 社區(qū)相當活躍,比如開發(fā)了代發(fā)度量工具 Tokei、Cargo-Geiger ,同時嘗試將 Rust 應用于開源項目:StratoVirt 是 openEuler 上的企業(yè)級虛擬化平臺,面向云數(shù)據(jù)中心,實現(xiàn)了一套架構統(tǒng)一支持虛擬機、容器、Serverless 三種場景。此外,華為還發(fā)起了 Rusted AI 的非商業(yè)組織,推動 Rust 在 AI 領域的應用落地 。

      而字節(jié)跳動飛書團隊則從 2017 年開始引入 Rust,飛書客戶端非 UI 部分是由 Rust 跨平臺實現(xiàn) ;2021 年 5 月開源了 rsmpeg 項目(一個 FFmpeg 的庫),也是采用 Rust 作為主要語言。

      阿里則在云原生方面加碼了 Rust 的投入,比如 11 月,Nacos 多語言體系中迎來了 Rust 版本。

      3、2023,Rust 值得再次拾起嗎?

      值得,當然值得。不管是趨勢還是現(xiàn)實,Rust 的價值已經(jīng)十分清晰。

      首先從流行度上而言,Stack Overflow開發(fā)者調(diào)查以及 Rust 的年度調(diào)查都在表明使用 Rust 作為工作語言的占比正在持續(xù)提高,這種慣性一旦養(yǎng)成,就會成為當年 Java 風靡全球之勢。

      此外還是 Rust 基金會的助力,這種趨勢會越來越快。據(jù)悉,Rust 基金會的創(chuàng)始成員承諾在 2 年內(nèi),提供每年超過一百萬美元的預算,用于 Rust 項目的維護、開發(fā)和推廣。

      其次,Rust 代表著一種“前衛(wèi)”的編程理念。軟件性能的提升總是滯后于硬件性能的提升。Rust 這種基于多核編程的理念,將對性能的低級(low-level)控制與現(xiàn)代語言功能結合在一起,語法上類似于 C++,但是又可以保證內(nèi)存安全,足以讓它在未來編程界站穩(wěn)腳跟。

      并且,Rust 陸續(xù)提出了“沒有數(shù)據(jù)爭用的并發(fā)性”、“沒有垃圾回收的內(nèi)存安全性” 和 “無懼駭客” 等引人矚目的概念,將無數(shù)極客大牛吸引聚攏在其項目中,不斷演進,呈現(xiàn)出越來越開放和健康的社區(qū)生態(tài)。

      此外,Rust 還代表了一種新的、開源項目的協(xié)作方式:Rust 項目中的決策權是唯一委派和分配的,核心團隊擁有更多特權。

      最后,需求就在那里,如果說以前,領導讓做 Rust 重構是為了講故事,自己學 Rust 是為了?,但現(xiàn)如今的 Rust 的應用場景愈發(fā)明晰:區(qū)塊鏈開發(fā)、嵌入式開發(fā)、分布式、云原生、WASL、GUI 等等已經(jīng)到處可以看到它的身影。

      之前一種語言單挑多個領域的夢想,Java 嘗試過,但夢碎了,Rust 卻成為了新的希望,Shopify 等為代表的公司評估它與自身的業(yè)務十分契合,就是一個例子。

      正如一位開發(fā)者所評論的:

      Rust 在大型企業(yè)環(huán)境中的一大優(yōu)勢是它真的非常通用,能夠用一種語言替換多種語言。Rust 真的可以做到 C/C++ 所能做到的一切,Java 所能做的一切,大部分 JavaScript 所能做到(隨著 WASM 情況的改善)。這個一站式編程語言商店是 Java 的夢想,但嵌入式 Java 的失敗和 Java 小程序的失敗扼殺了這個夢想。Rust 有希望復活它。

      4、難學:門檻如何降低

      Rust 初學者經(jīng)常寫到一半,腦海中會出現(xiàn)一種聲音:何苦為難自己呢?比如下面這位朋友——

      本來想拿 Rust 寫一個集成業(yè)務邏輯的 API gateway,結果被 future 的那些個 error 轉來轉去搞得煩不勝煩,想一想發(fā)現(xiàn)這玩意兒又沒狀態(tài)我折騰它有個屁用,所以拿 node 隨便搞了搞就上線了。

      Rust 學習曲線陡峭得厲害是公認的。每每一到挫敗之時,Go、C#、Crystal、Dart 就成了它的替代品。許多開發(fā)者甚至學習了N個月也搞不明白借用檢查器。

      因此,即使 Rust 能產(chǎn)生十分高效的代碼,公司也會對他們的開發(fā)者使用它的生產(chǎn)力持懷疑態(tài)度。

      最大的問題是,Rust 是否會被技術水平較低的程序員接受,特別是在其復雜性不斷增加的情況下。Rust 的教學和培訓將是關鍵。

      習慣是需要培養(yǎng)的,就像垃圾收集、運行時異常、函數(shù)式編程這些陌生的概念一樣,是一個不斷磨合與適應的過程。

      我們可以看到 Rust 方面一直在推廣在學習方面不遺余力,從社區(qū)的活躍度,教程的補充等等。此外,Linux 基金會也在如何用 Rust 編寫內(nèi)核模塊方面發(fā)布了教程。

      近期,一位有心之人就利用 OpenAI ChatGPT 學習 Rust 。有位作者嘗試和它做一些有關 Rust 方面的交流,回答的可以說相當可以了。比如:

      編寫一個讀取文件內(nèi)容的程序并為每一行添加詳細的注釋

      給它源碼和編譯器報的錯誤,他給了更清晰的解釋并幫忙修復了

      問了一個rust-anlyzer filed to discover workspace 這樣的問題,ChatGPT給予了詳細的解決辦法。后面甚至讓ChatGPT幫忙寫了一個完整的命令行程序

      人之為學有難易乎?學之,則難者亦易矣;不學,則易者亦難矣。Rust 虐我千百遍,我待 Rust 如初戀!共勉!

      文章內(nèi)容僅供閱讀,不構成投資建議,請謹慎對待。投資者據(jù)此操作,風險自擔。

    即時

    TCL實業(yè)榮獲IFA2024多項大獎,展示全球科技創(chuàng)新力量

    近日,德國柏林國際電子消費品展覽會(IFA2024)隆重舉辦。憑借在核心技術、產(chǎn)品設計及應用方面的創(chuàng)新變革,全球領先的智能終端企業(yè)TCL實業(yè)成功斬獲兩項“IFA全球產(chǎn)品設計創(chuàng)新大獎”金獎,有力證明了其在全球市場的強大影響力。

    新聞

    敢闖技術無人區(qū) TCL實業(yè)斬獲多項AWE 2024艾普蘭獎

    近日,中國家電及消費電子博覽會(AWE 2024)隆重開幕。全球領先的智能終端企業(yè)TCL實業(yè)攜多款創(chuàng)新技術和新品亮相,以敢為精神勇闖技術無人區(qū),斬獲四項AWE 2024艾普蘭大獎。

    企業(yè)IT

    重慶創(chuàng)新公積金應用,“區(qū)塊鏈+政務服務”顯成效

    “以前都要去窗口辦,一套流程下來都要半個月了,現(xiàn)在方便多了!”打開“重慶公積金”微信小程序,按照提示流程提交相關材料,僅幾秒鐘,重慶市民曾某的賬戶就打進了21600元。

    3C消費

    “純臻4K 視界煥新”——愛普生4K 3LCD 激光工程投影

    2024年3月12日,由愛普生舉辦的主題為“純臻4K 視界煥新”新品發(fā)布會在上海盛大舉行。

    研究

    2024全球開發(fā)者先鋒大會即將開幕

    由世界人工智能大會組委會、上海市經(jīng)信委、徐匯區(qū)政府、臨港新片區(qū)管委會共同指導,由上海市人工智能行業(yè)協(xié)會聯(lián)合上海人工智能實驗室、上海臨港經(jīng)濟發(fā)展(集團)有限公司、開放原子開源基金會主辦的“2024全球開發(fā)者先鋒大會”,將于2024年3月23日至24日舉辦。