成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

原創 精選
新聞
新舊語言之爭戰火重燃

  Rust最近有點忙。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  目前Linux內核已經擁有出色的由C編寫的NVMe驅動程序,不需要替換。但鑒于NVMe驅動程序的廣泛使用度及其重要性,使用Rust編寫的NVMe驅動程序也是一個非常有趣的嘗試。基準測試結果表明,雖然Rust NVMe驅動程序仍處于早期階段,但其已表現不俗——結果表明該Rust驅動程序能夠實現與C驅動程序相當的性能。

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

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

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

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

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

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

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

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

  參考鏈接:

  ??https://www.theregister.com/2022/10/17/google_kata_os/?td=rt-3a??

  ??https://www.theregister.com/2022/09/28/is_it_time_to_retire_c/??

  ??https://www.sohu.com/a/589872952_121124371??

??https://www.infoworld.com/article/3675391/7-reasons-to-love-the-rust-language-and-7-reasons-not-to.html??

責任編輯:張潔 來源: 51CTO技術棧
相關推薦

2012-12-07 15:36:35

SDN軟件定義網絡

2013-10-10 16:54:29

3D 打印3D 打印技術開源硬件

2010-04-20 10:49:00

Unix未來x86交鋒

2017-04-05 16:15:44

2G網絡運營商

2024-09-18 14:30:00

馬斯克AI腦機接口

2018-04-27 08:34:21

SSDHDD硬盤

2023-06-19 17:27:49

5G-A

2021-07-09 08:32:24

eSIM物聯網芯片

2022-12-31 08:36:56

2022-04-07 11:03:07

Rust編程語言開發人員

2023-03-16 15:00:31

CarbonC++編程語言

2022-05-16 11:35:05

Cat.1蜂窩物聯網5G RedCap

2021-12-03 17:22:09

CC++編程語言

2020-06-01 14:20:35

DenoNodeJS開發

2024-02-26 07:26:27

RustC++開發

2024-07-26 00:22:34

2020-03-26 11:32:17

物聯網智慧城管信息技術

2018-01-19 09:33:14

2020-01-21 22:25:00

機器學習人工智能計算機

2014-06-04 11:25:39

Swift蘋果iOS
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久免费视频在线 | 天天干天天爽 | 精品日本久久久久久久久久 | 成人在线视频免费观看 | 成人毛片一区二区三区 | 激情五月婷婷丁香 | 国产真实精品久久二三区 | 91视频在线网站 | 在线播放一区二区三区 | 午夜欧美日韩 | 精品中文字幕久久 | 欧美一区二区三区视频在线 | 国产日产欧产精品精品推荐蛮挑 | 在线亚洲免费视频 | 亚洲欧洲综合av | 国产精品一区2区 | 免费看黄视频网站 | 久久久久久久久久久久久九 | 国际精品鲁一鲁一区二区小说 | av天天干 | 成人欧美一区二区三区 | 欧洲高清转码区一二区 | 欧美黄色小视频 | 嫩草影院网址 | 亚洲一区不卡 | 精品视频一区二区三区 | www.日韩高清| 国产成人jvid在线播放 | 成人1区2区| 日韩成人av在线 | 日本久久久影视 | 91麻豆精品国产91久久久久久 | 综合九九 | 亚洲成人自拍 | 国产在线精品一区二区 | 操人视频在线观看 | 二区中文字幕 | 欧美高清性xxxxhdvideosex | 在线观看中文字幕 | 91久久精品国产91久久性色tv | 九九福利 |