Rust是完美的編程語言嗎?
Rust在Stack Overflow 2021年開發者調查中再次被評為 "最受喜愛的 "編程語言。完成了它在該特定排行榜上的第六個年頭。
然而,作為C++的替代品而開發的編程語言在 "最常用的編程語言 "的總榜單上仍然只排在第16位,那么為什么Rust如此受到普遍的喜愛,為什么這種喜愛沒有轉化為在主要榜單上更突出的位置?
加入我們吧,我們來看看Rust的歷史,它的演變,并回答人們經常問的(和夸張的)問題 "Rust是完美的編程語言嗎?".
Rust的歷史
Rust是由Mozilla員工Graydon Hoare開發的,他描述說他自稱是 "中年......白人,喜歡打瞌睡、讀歷史書、和朋友出去玩、反復看十幾部80年代的爛電影"。
到目前為止,還有什么不喜歡的呢?
Hoare于2006年開始研究Rust,該項目從2009年起由Mozilla贊助,直到2014年1月首次穩定發布(Rust 1.0),當時的技術雜志 Dr Dobb’s對Rust的評價是:"人們普遍認為它是一種非常優雅的編程語言"。
其他人也同意......并且該語言繼續流行,直到去年(2021年),當 Rust Foundation基金會成立的目的是 "支持語言的維護和發展,同時培養Rust項目團隊和用戶社區",鞏固其在 "優雅語言 "萬神殿的地位的是五個創始企業成員......Mozilla、微軟、谷歌、亞馬遜網絡服務和華為。
因此,Rust不僅是最受喜愛的(根據Stack Overflow的數據),它還在聚集世界上一些最大的技術公司的支持。但是,Rust有什么特別之處呢?
Rust有什么特別之處?
Rust最初是為了解決C/C++中普遍存在的問題而開發的。
它的創建(和發展)主要是為了解決性能和安全問題。
它的語法與C++相似(在最基本的意義上--例如,它不使用空格縮進),然而作為一種語言,它有很大的不同,因為它根本不是面向對象的。
它的主要好處被認為是在解決圍繞內存錯誤的問題(在安全和管理方面)和并發編程。
在Rust中,有兩種編寫代碼的模式。安全Rust和不安全Rust。安全Rust對程序員施加了額外的限制,以確保代碼的正常運行,而不安全Rust則給了程序員更多的自主權和靈活性。
在安全的Rust中,編譯器可以做更多的工作來確保你所寫的代碼以它所期望的方式處理內存。然而,如果你寫的代碼需要與C或C++互操作,Rust提供了一個不安全的逃生艙口。
編寫不安全的代碼意味著要由開發者來驗證它的正確性,因為編譯器不能獨立驗證它。
Rust的雙模式模型是其相對于C++的最大優勢之一,因為當用C++編程時,你永遠不知道你寫了不安全的代碼,直到你的軟件崩潰或被發現有安全漏洞。
Rust區別于其他編程語言的關鍵因素之一是,它跟蹤所有的狀態所有權,如果有不正確的地方,會在編譯時告訴你。當你聽到開發者抱怨 "檢查器 "的時候,這可能就是他們所指的東西。
許多開發者對Rust的評價是 "既快又靈活",但究竟是什么讓它如此?
- 它是靜態類型的,并被編譯為
- 它提供特性的靜態調度
- 它提供了零成本的抽象性
- 它跟蹤變量的所有權
- 它提供代數數據類型
- 它存儲的數據沒有任何開銷
這一切聽起來都很好,但采用是任何編程語言的障礙,所以誰在使用這種快速和靈活的語言?
現在和將來誰會使用Rust?
在近6萬名專業開發人員中,Stack Overflow的調查表明,只有6.4%的受訪者在積極使用該語言,17%使用C語言,20%使用C++語言。
那么,為什么Rust還沒有超越C++,將來會不會?
雖然專業的Rust開發者經常提到該語言 "比C++好",因為它有明確的語義和防止不需要的行為,但許多人也表示,如果他們正在尋找一種支持良好和框架豐富的語言,他們很可能仍然選擇C++。
因此,Rust作為C++王位的偽裝者是否真的會在某個時候推翻它,現在還沒有定論。
盡管如此,有一系列證據表明,自從Rust支持進入Linux內核以來(因此可以用Rust編寫驅動程序,以幫助捕捉全新的錯誤類別),許多大型科技企業正在使用這種編程語言。這里僅列舉一些積極招聘Rust開發人員的企業。
- 微軟
- 滴答網
- 亞馬遜
雖然Rust仍被認為是一種相對年輕的語言,但它也已成為新興加密貨幣類項目、方案和企業的大熱門,建立在第一層解決方案之上,
因此,盡管編程語言的發展仍處于起步階段,但Rust似乎已經有了風向標的作用。
Rust是完美的編程語言嗎?
嗯。有很多人都這么認為。
杰克-多爾西就是其中之一。
當他被一個開發者質疑說:"完美的是什么?".他反駁說:"系統/實時",這句話簡明扼要,一針見血......但對于這樣一個夸張的說法,并不是一個特別詳細的回應。
如果我們暫時回到Stack Overflow的調查,當83,000名專業開發者被問及他們對哪種語言的開發感興趣時......Rust排在第六位。因此,像上面那條來自一個在全球擁有610萬粉絲的人的推特的曝光,很可能會引起對學習Rust感興趣的開發人員的涌動。
更多的開發者意味著有更多的采用理由嗎?有可能。
當然,沒有完美的編程語言,但通過評估Rust能夠提供的好處,該語言的普及和使用只會越來越多,這并不奇怪。
Rust已經完成了它的目標,即解決了一些普遍存在的問題,這些問題在開發者社區中引起了許多人的頭痛,同時確保其性能水平與其他更知名的編程語言一樣好(甚至更好!)。
因此,也許當我們在十年后回顧這篇文章時,我們會認為我們是先知先覺的,那時Rust是地球上使用最廣泛的編程語言之一......
或者,也許編程會有一個類似于數學從微積分中得到的范式轉變,即基礎模型(即SSI--序列、選擇和迭代)的根本變化,以支持不同的結構,進而支持不同的抽象模型。
在那之前,所有新的編程語言都將是稍微 "優雅 "的SSI形式,在句法上灑上大量的糖。