中國品牌,讓東南亞感受“消費升級”小紅書本地“坐抖望團”CrowdStrike“全球滅霸響指”事件后續(xù),德國 10% 企業(yè)更換安全供應商導致 1TB 數(shù)據(jù)泄露后,迪士尼宣布棄用 Slack 平臺合合信息啟信產業(yè)大腦攜手市北新區(qū)打造“一企一畫像”平臺,加速數(shù)字化轉型重慶:力爭今年智能網(wǎng)聯(lián)新能源汽車產量突破 100 萬輛,到 2027 年建成萬億級產業(yè)集群微信iOS最新版上線:iPhone用戶可在朋友圈發(fā)實況照片了蘋果有線耳機或將停產沖上熱搜!閑魚相關搜索量暴漲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)從代碼到云的全面軟件完整性和可追溯性
  • 首頁 > 數(shù)據(jù)存儲頻道 > 數(shù)據(jù)庫頻道 > 操作系統(tǒng)與開源

    用Rust取代C/C++?為時尚早!

    2022年10月26日 12:04:57   來源:51CTO

      Rust最近有點忙。

      前有微軟CTO公開放話:“是時候用Rust取代C/C++創(chuàng)建新項目了!”后有Linus Torvalds表示,如無意外,Linux 6.1將初步支持Rust。

      作為一門新語言,Rust近年來可謂風頭正盛。

      據(jù)開發(fā)者調查分析公司SlashData報告,從2021年到2022年的第一季度,Rust是使用數(shù)量增長最快的語言。而在StackOverflow相關調查中,Rust也多年蟬聯(lián)最受歡迎的編程語言。另外,蘋果、微軟、谷歌、亞馬遜、Meta 等科技巨頭陸續(xù)使用Rust,無疑也加速了Rust生態(tài)的成長。

      被很多人視作“C++后繼者”的Rust開始越來越多地進入人們的視野。未來Rust是否會取代C++的議題也逐漸涌現(xiàn),但新舊編程語言之爭素來如此,只有時間才能帶來終局。當下,不妨先來看一看Rust最近活躍的身影,從中也許能窺見其一路發(fā)展的履跡。

      谷歌:兜兜轉轉,尋覓C++繼任者

      在外界看來,谷歌對Rust向來秉持非常開放的態(tài)度。

      谷歌于近日推出的開源操作系統(tǒng)KataOS引發(fā)了一波關注。值得關注的是,出于將安全性放在首位的宗旨,KataOS專門使用Rust語言開發(fā),并基于seL4微內核進行了構建。之所以選擇Rust,谷歌方面表示,“這為其安全性提供了一個強有力的起點,因為Rust消除了entire classes錯誤,例如大小差一(off-by-one errors)和緩沖區(qū)溢出”。

      除了在新系統(tǒng)開發(fā)中采用Rust編寫,谷歌在去年就宣布AOSP支持使用Rust開發(fā)Android操作系統(tǒng)。彼時,谷歌工程師指出,C和C++中的內存安全bug是長期痼疾之一。盡管谷歌已經投入了大量的精力和資源來檢測、修復、預防這類bug,內存安全bug仍然是導致穩(wěn)定性問題的主因,它在Android嚴重安全漏洞中長期占比約70% 。相較于C和C++在內存管理方面的復雜性,Rust可以利用編譯時檢查(確保對象的生命周期和所有權)和運行時檢查(確保內存訪問有效)來保證內存安全。而且Rust在實現(xiàn)安全性的同時還提供了與C和C++相當?shù)男阅堋?/p>

      此外,在是否應將Rust代碼引入Linux內核的討論中,谷歌曾公開表示支持立場。谷歌安全博客曾發(fā)文稱:“我們認為,Rust現(xiàn)在已經準備好加入C語言,成為實現(xiàn)內核的實用語言。它可以幫助我們減少特權代碼中潛在的bug和安全漏洞,同時與內核也配合得很好,可以很大程度上保留其性能特性。”

      可以說,谷歌對Rust一直不吝支持。但在尋找C++繼任者的實驗之路上,谷歌并未止步于Rust。

      在今年7月舉辦的CPP North C++大會上,谷歌開源并發(fā)布了新型語言Carbon,并稱其是C++的實驗性繼任者。

      谷歌工程師Chandler Carruth介紹,Carbon旨在與現(xiàn)有的C++代碼完全互操作,目標是盡可能輕松地從C++遷移到Carbon。與之相比,Rust固然在內存安全性上優(yōu)勢鮮明,但其可能永遠無法與C++達成足夠的互操作性,以致很難實現(xiàn)平滑遷移。

      對于Carbon的出現(xiàn),C++之父Bjarne Stroustrup應媒體之邀給出了直白的回應:“總有新的語言試圖成為C++的繼任者。我歡迎對編程語言和編程風格進行實驗,但我不想引發(fā)爭議。批評已建立的語言很容易,因為我們知道它們的問題,但通常很難在不產生語言規(guī)則、庫和管理方面的全新問題的情況下提供替代方案。Carbon太新了,而且規(guī)范不足,以至于我無法真正做出有意義的技術評論。”

      微軟Azure:CTO力挺Rust與C++之父隔空battle

      同樣是支持,相較于谷歌對Rust的態(tài)度,微軟就顯得激進很多。

      自2004年以來,微軟安全響應中心(MSRC)已對所有報告過的微軟安全漏洞進行了分類,發(fā)現(xiàn)其年度補丁中約有70%是針對內存安全漏洞的修復程序。而造成這一結果的主要原因是Windows和大多數(shù)其他微軟產品主要使用C和C++這兩種memory-unsafe的語言編寫。

      如果能消除這些漏洞將明顯提高軟件安全性,同時降低漏洞修復成本。于是,微軟開始探索使用諸如Rust之類的memory-safe語言作為C和C++等語言的替代方案,以此來改善應用程序的安全狀況。除此之外,在Rust的啟發(fā)下,微軟還著手開發(fā)了自己的內存安全編程語言Project Verona。

      微軟對Rust前景的看好有目共睹。今年9月,微軟Azure CTO Mark Russinovich的公開表態(tài)又引起了熱議。

      Russinovich在推特上表示:“是時候停止使用C/C++創(chuàng)建任何新項目了。如果你要開新項目,而且需要使用非GC語言的時候,建議使用Rust替代。出于安全和可靠的考慮,業(yè)界應該宣布棄用C/C++。”不過他也強調,并非是要用Rust完全取代C/C++寫好的東西,只是“對于新工具,我會偏向Rust”。

      對這一觀點,Bjarne Stroustrup這次給出的回應更為“辛辣”:“人們——尤其是高管——迷戀那些承諾可以讓他們的生活更輕松的新事物,這并不少見。此外,支持新事物遠比解決舊工具和知名工具的已知問題更令人興奮。不過,新語言通常需要多年時間和重大努力才能在其廣泛的應用領域與成熟語言相匹配。愛好者很少看到這一點,并且他們的評論往往是片面的。”

      同時,Stroustrup表示,多年來他一直致力于提高C++的安全性,現(xiàn)在已經可以在ISO C++中實現(xiàn)有保證的完美類型和內存安全。“要注意的是,包括Rust在內的每一種‘安全’語言都存在允許不安全代碼的漏洞。”

      Rust加入Linux之旅:千呼萬喚始出來

      Rust的迅速崛起離不開頂級的項目引入。而Linux內核何時能支持Rust一直備受矚目。

      自Rust嶄露頭角,許多人呼吁在Linux內核中增加Rust語言的支持,甚至還為此誕生了一個叫“Rust for Linux”的組織。

      早在2020年,Linus Torvalds就回應過相關問題,他并沒有否定這一提議。而在Linux Plumbers Conference 2020大會上,內核開發(fā)者們普遍達成共識:沒必要將已有內核用Rust重寫,應專注于可以用Rust編寫的新代碼。此后,Linus也一直對此持觀望和開放態(tài)度。

      Rust到底有沒有可能成為Linux內核中除C之外的第二種官方語言呢?答案是肯定的。

      不過本以為能在6.0版本看到Rust合并進內核,但最終沒有實現(xiàn)。究其原因,主要有兩個,一個是非標準的Rust擴展的處理,另一個是Rust編譯器還不穩(wěn)定。Linus表示自己更關心后面這個原因,因為Rust編譯器的可靠性和穩(wěn)定性更重要。

      而今年的LPC大會舉行了一個Rust相關的小型會議。會上,西部數(shù)據(jù)公司的工程師Andreas Hindborg的發(fā)表頗為引人注目,其主旨是圍繞基于Rust的NVMe驅動程序。

      目前Linux內核已經擁有出色的由C編寫的NVMe驅動程序,不需要替換。但鑒于NVMe驅動程序的廣泛使用度及其重要性,使用Rust編寫的NVMe驅動程序也是一個非常有趣的嘗試;鶞蕼y試結果表明,雖然Rust NVMe驅動程序仍處于早期階段,但其已表現(xiàn)不俗——結果表明該Rust驅動程序能夠實現(xiàn)與C驅動程序相當?shù)男阅堋?/p>

      就在LPC大會之后的2022 Linux內核維護者峰會上,Linus提議將Rust支持合并到Linux 6.1中。他表示,希望在內核中看到Rust的一個原因是鼓勵新的開發(fā)者研究內核。不過他也提醒,目前“Rust只在核心基礎設施使用”。不過,這對Rust和Linux來說,都將是歷史性的第一步。

      新舊語言之爭:唯有時間是永遠的莊家

      在編程世界中,新舊語言之爭歷久彌新。不少人期待Rust對標C++,就像TypeScript之于JavaScript,Kotlin之于Java。

      不過事實上,兩者并非“你死我活”的關系。一些C++的擁躉也并非完全排斥Rust,一些鼓吹Rust的人或許也并不完全了解Rust,就像某位網(wǎng)友的反諷“They don't write a piece of code, but they're trying to rust everything”。

      推陳出新固然是技術演進的必然,但像C++、C、Java等老牌編程語言能有如今的江山,也非一日之功。況且任何要彌補C++缺陷的語言, 都得和C++協(xié)作, 復用C++的輪子。

      而今時今日,Rust說到底仍然是一門年輕的語言,或許我們可以爭論Rust是否為異步編程提供了最好的模型,擺脫垃圾回收對開發(fā)人員助益如何,但要討論它是否終將取代C++,顯然為時尚早。

      對于Rust,無論你是愛它還是恨它,都不能否認其崛起的速度,但未來究竟會如何,尚需時間的檢驗。正如微軟首席工程師Nick Cameron所說,現(xiàn)如今Rust正處于一個良好的發(fā)展局面:受歡迎程度越來越高、貢獻者越來越多,還在一些重要領域進行了應用。但在這個充滿變化的時代,從一個研究項目到一個新的、快速變化的語言再過渡到一個流行的、成熟的項目,是一個困難的演變過程。

      就開發(fā)人員來說,Rust可能適合也可能不適合你或你的項目,可能是也可能不是創(chuàng)建相關程序的最優(yōu)解決方案。但至少它提供了一個新的選擇,增加了更多探索和想象的路徑。就像Peter Wayner在《喜歡/討厭Rust的七個理由》一文中總結的那樣:“作為一門語言,Rust很新穎,學習它可以使人的大腦得到延伸。作為程序員,它讓我們有理由重新思考我們的挑戰(zhàn),重新制定我們的目標,并著手尋找編寫現(xiàn)代軟件的最佳方式。還有什么能比這更好呢?”

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

    即時

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

    近日,德國柏林國際電子消費品展覽會(IFA2024)隆重舉辦。憑借在核心技術、產品設計及應用方面的創(chuàng)新變革,全球領先的智能終端企業(yè)TCL實業(yè)成功斬獲兩項“IFA全球產品設計創(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ā)者先鋒大會即將開幕

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