Rust 未來必火的 5 大原因
在 Stack Overflow 2020
調查中,Rust
被選爲最受歡迎的編程語言第一名,這要歸功於 86%
的開發人員表示他們會繼續使用它。對於語言創造者來說,這並不是什麼新鮮事——自 2016
年以來,Rust
一直在這項調查中獲勝。在 Tiobe
指數上, Rust
的受歡迎程度也在上升——在 9
月的最受歡迎語言中排名第 18
位。它在我們自己的基於情感分析的函數式編程語言排名中也沒有失敗,在最積極的情感類別中獲得第一名。
https://insights.stackoverflow.com/survey/2020#technology-most-loved-dreaded-and-wanted-languages-wanted
https://www.tiobe.com/tiobe-index/rust/
https://scalac.io/ebook/top-functional-programming-languages-ranking-based-on-sentiment-analysis/introduction/
由前 Mozilla
開發人員Graydon Hoare
於2006
年創建,作爲 C++
語言的替代品,Rust
正慢慢在開發人員的世界中聲名鵲起。它現在用於創建 Web
軟件、嵌入式計算機和分佈式服務或命令行。這種受歡迎程度的適當證明是,全球巨頭微軟正在慢慢地從 C++
語言(由於安全問題數量不斷增加)轉向 Rust
。
是什麼讓 Rust
在程序員中如此受歡迎,當他們有這麼多其他語言可以使用時?主要原因之一是 Rust
解決了許多在不同語言中可見的問題——以至於一些開發人員說 Rust
的創建者一定已經考慮到了C++
中可見的所有潛在問題。究竟是什麼讓 Rust
如此獨特,學習 Rust
是否值得?以下是我們認爲 Rust
是我們的未來的五個原因。
Rust 與其他語言
Rust
相對於目前開發人員所熟知的許多語言具有其優勢。讓我們來看看其中的一些。
Rust 與 C++:優勢
與 C++
相比,Rust
只是更安全。Rust
保護自己的抽象和開發人員所做的抽象,而 C++
缺少這兩個選項。C++
中的特定錯誤可能導致任意行爲,而 Rust
可以幫助您專注於真正重要的事情。是的,C/C++
仍然被認爲是最流行的編程語言之一,但它經常會導致一些問題。Rust
更容易上手,學習曲線不是很陡峭,Rust
沒有 C++
那樣,而它更具有併發性,並且性能也非常好。Rust
允許程序員編寫不安全的代碼,但默認爲安全代碼(如果您選擇加入,您可以使用 unsafe
關鍵字在 Rust
中設置不安全代碼的塊。
Rust 與 Java:優勢
當談到 Java
時,事實證明這種編程語言比 Rust
慢得多,此外,啓動時間和更小的內存佔用優勢明顯可以看出。Java
使用垃圾收集進行內存管理,這會降低性能。
Rust 與 Python:優勢
Rust
設計得很好。Rust
允許在 lambda
中放置語句,並且一切都是表達式,因此更容易組合語言的特定部分。Python
缺少它。Rust
沒有類,所以面向對象不像 Python
那樣進化。Python
還遇到了編寫更多測試、生產中斷或運行時容易崩潰。而Rust
使識別和修復可能的錯誤變得可能。
Rust vs Go:優勢
Go
缺乏表現力。Rust
有一個靈活且富有表現力的系統,允許定義新的容器類型,這些容器類型可以包含不同類型的元素、泛型、特徵、代數數據類型。而Go
減少了對資源和內存安全的控制。
爲什麼 Rust 是未來?
1. Rust 提高了內存安全性。
困擾開發人員的最大問題之一是內存管理問題。在其他語言中很容易遺漏代碼問題,這反過來又會產生可怕的錯誤代碼——並且需要時間來查找和修復它們。一個更大的問題是編碼錯誤何時可能導致安全漏洞——在當今世界,這簡直太危險了。大型流行網站或應用程序中發生數據安全漏洞的案例比我們預想的要頻繁得多。原因?很多時候,應用程序漏洞或配置錯誤都將導致這類情況的發生。
Rust
被認爲是內存安全的。Rust
代碼不能有任何dangling
指針、緩衝區溢出或任何其他類型的與內存相關的錯誤。它讓你定義應該如何管理內存以及如何在其中佈置值,在不損失性能的情況下兼顧控制和安全,並使其成爲 Rust
的第一大優勢
提高內存安全性是 Rust
開發人員的主要目標之一,也是該語言最重要的賣點。他們的代碼編譯器很嚴格,每一個用到的變量或內存地址都會自動檢查。如果發現任何語法錯誤、空值、dangling
修飾符或內存安全問題,Rust
將不會編譯代碼並警告不安全代碼,以便快速發現和修復主要問題。它是如何做到的?
在 Rust
中,每個值都有一個ownership
。當一個值被傳遞或返回時,ownership 被賦予一個新的範圍——一次只有一個。如果值的 ownership 移出範圍,則該值將被刪除。這樣,Rust
會跟蹤內存並自動釋放它——並防止所有錯誤進入主代碼。這意味着在運行時沒有意外!該系統將在編譯時分析內存管理,幫助更快地識別和修復錯誤,並使垃圾收集變得不必要。
但還有更多關於內存的內容。構建高級系統通常與大量計算密集型工作相關並創建大量臨時內存。這種卸載會對任何 Java
虛擬機性能產生負面影響,而且許多編程語言(包括 Scala
)根本無法處理它。
然而,Rust
可以。它支持編寫內存高效的代碼,無需管理內存或專門提供現代便利(例如閉包),並且運行時運行時開銷最小或沒有運行時開銷,可用於實時或嵌入式項目,並可輕鬆與其他語言或項目集成。如果這個還沒有說服你,讓我們更進下一步。
2. Rust 的社區不斷壯大。
當然,Rust
的社區和庫的數量遠不及 C++
等。但隨着 Rust
語言的日益流行,加入的開發人員和熱情的人的數量也在增加。社區創建的框架、庫和開發工具(稱爲crates
)的數量已經接近 57k
,並且每天都在增加。
除了不斷增長的工具和框架庫之外,Rust
還擁有一個活躍且受歡迎的社區。無論您是需要解決問題的幫助還是尋找使用 Rust
的技巧和竅門,您都有幾個地方可以訪問。除了社區聊天和用戶論壇,Rust
還有一個活躍的 subreddit
部分。
看幾個新興社區項目的例子:
-
redox
,一個用Rust
編寫的操作系統; -
cgmath
,一個線性代數和計算機圖形庫; -
Iron
,一個併發 Web 框架; -
Doom renderer
redox: https://github.com/redox-os/redox
cgmath: https://github.com/bjz/cgmath
Iron: https://github.com/iron/iron
Doom renderer: https://github.com/cristicbz/rust-doom
3. Rust 快速靈活。
Rust
被認爲是一種相對較快的語言。當使用通用代碼時,它可以比 Scala
運行得快得多,尤其是在性能關鍵任務中。很有可能在某些領域它的運行速度甚至比 Scala
或 Java
快三倍。獲取和使用外部包很容易,而且 Rust
的構建工具使編碼變得簡單。
有幾個因素使 Rust
非常快:
-
它是靜態類型和編譯的,使編譯器可以優化代碼以提高速度
-
它提供特徵的靜態調度:類似於
C++
模板,但更清晰 -
它明確跟蹤變量的所有權。
Rust
不假設任何帶有地址的變量都可以隨時更改,因此可以在不對代碼產生負面影響的情況下進行優化。 -
它期望變量默認是不可變的(因此優化更容易)
-
它提供代數數據類型,也很適合優化
-
它在沒有任何開銷的情況下存儲數據,沒有運行時或由於缺乏垃圾收集而突然暫停
-
它提供零成本抽象
4. Rust 可以廣泛使用
如果有一個項目,除了性能和低級優化(但高級 Rust
函數式編程技術)的重要性之外,還需要一個安全穩定的執行環境, 那麼請選擇Rust
Rust
被認爲是一種低級語言,適合最好的系統,以及嵌入式和其他性能關鍵代碼。據信,它還可以用於 3D
視頻遊戲。
爲什麼 Rust
如此受到全世界開發者的喜愛?首先,它允許您編寫最有可能永遠不會出錯的代碼,因爲編譯器會檢查所有內容。在編譯時在其他編程語言中檢測到的問題不會出現在 Rust
中。它也有利於編寫安全、省時的抽象,它的安全性幾乎消除了使用不變性的需要。
Rust
也被認爲是一種用於關注性能、速度和安全混合質量的新興創新領域的語言。
Rust
是一種流行的加密貨幣和區塊鏈編程語言。這是一個受歡迎的選擇,因爲它易於理解和學習,並且提供了性能和安全性的獨特組合——後者正是開發人員正在尋找的東西。Rust
還爲這些開發人員提供了工具,以更快地開始交付他們的代碼。選擇 Rust
,加密貨幣不太可能崩潰,並且比使用另一種編程語言時更安全。在這裏您可以找到使用 Rust
的加密貨幣的相關內容。
https://www.reddit.com/r/rust/comments/a93dv8/cryptocurrencies_written_in_rust/
5. 幾家大公司都在使用 Rust
儘管 Rust
是一種相對年輕的語言,但在提高編程安全性和易用性方面,Rust
已經被開發人員認爲是正確的一步。但不僅開發人員對 Rust
感興趣——公司,尤其是大型公司,也已經或計劃轉向 Rust
。在 5
月份舉行的 AllThingsOpen
虛擬會議上,Ryan Levick(
微軟雲開發倡導者)解釋說,Rust
語言正在業界解決了當今語言當中一些讓人苦惱的問題”。雖然微軟不打算很快停止用 C++
編寫,但它的許多基礎設施正在慢慢轉移到 Rust
。
微軟並不是唯一一家意識到改用 Rust
語言的潛在好處的公司——使用 Rust
語言的公司包括 Dropbox、Sentry
、亞馬遜和 Mozilla
。
結論
縱觀 Rust
可以提供的所有好處,該系統的受歡迎程度只會越來越高也就不足爲奇了。Rust
解決了很多問題,隨着開發人員和 IT
領域的主要參與者都認識到 Rust
語言的潛力,可以毫不誇張地說 Rust
有朝一日將成爲現代世界中最常用的編程語言之一。
參考地址 [1]
參考資料
[1]
參考地址: https://medium.com/scalac/5-reasons-why-rust-is-the-future-7ac731085339
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/ygRQ2a5cU3Nn_KUpP37KVA