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 Hoare2006 年創建,作爲 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: 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 運行得快得多,尤其是在性能關鍵任務中。很有可能在某些領域它的運行速度甚至比 ScalaJava快三倍。獲取和使用外部包很容易,而且 Rust 的構建工具使編碼變得簡單。

有幾個因素使 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