Rust專欄前言:Rust優勢和前景展望

時代的召喚

區塊鏈被宣佈作爲核心技術的第二天,我們就要好好學習Rust。這是響應黨的號召,這是順應時代的潮流。事實上,目前最有名的基於Rust語言的項目就是臉書的Libra,這是一個區塊鏈界的顛覆性項目,該項目自問世到現在,一直爭議不斷。巧合的是,就在前兩天,臉書CEO在美國國會聽證會爲Libra辯護:若遭阻止,中國將先發制人。

我認識Rust

我第一次瞭解到Rust是在2015年的夏天,是csdn對港大專訪的那篇文章:專訪Elton:淺談C++、Go的挑戰者Rust。那個時候還在成都讀書,恰好也認識了Mike,參加了一次他組織的程序線下Rust聚會。不過那個時候自己太菜,去線下聚會,各個大拿講的東西並不怎麼聽的懂,不過能感受到大家對Rust的狂熱喜歡。

Rust優勢

作爲一個Rust還在“hello world”水平的我,就不妄議這塊了直接搬用Rust官網介紹

  • 高性能

Rust 速度驚人且內存利用率極高。由於沒有運行時和垃圾回收,它能夠勝任對性能要求特別高的服務,可以在嵌入式設備上運行,還能輕鬆和其他語言集成。

  • 可靠性

Rust 豐富的類型系統和所有權模型保證了內存安全和線程安全,讓您在編譯期就能夠消除各種各樣的錯誤。

  • 生產力

Rust 擁有出色的文檔、友好的編譯器和清晰的錯誤提示信息, 還集成了一流的工具 —— 包管理器和構建工具, 智能地自動補全和類型檢驗的多編輯器支持, 以及自動格式化代碼等等。

Why Rust

以下部分搬用自當區塊鏈遇上Rust —— 爲什麼Rust編程語言適合區塊鏈開發

雖然 Rust 是一門系統級編程語言,但並不意味着它只能寫底層程序(操作系統、驅動、工具、數據庫、搜索引擎等),它的抽象層次之高完全給人驚豔的感覺,實踐證明它對問題建模的能力和方便性不比 C++/Java/Python/Ruby 差。但 Haskell 這類超高抽象語言,也不是 Rust 的發展方向。Rust 力求在抽象與現實世界中找到一個平衡。

目前,Rust 已經在 StackOverflow 的年度語言評選中,連續 4 年榮獲“程序員最喜愛語言”第一名(2016, 2017, 2018, 2019)。

在這裏插入圖片描述

圖片出處:https://insights.stackoverflow.com/survey/2019

Rust在實現內存安全和併發安全的同時,並沒有以損失性能爲代價。更牛逼的是,它甚至是用同一套抽象解決了內存安全和數據競爭這兩個不同領域的問題。

Rust的零開銷抽象讓你在享受安全性的同時,又不損失性能。這正是傳統的程序員夢寐以求的。

Parity使用Rust,正是因爲用Rust寫複雜和高性能的代碼時,不用擔驚受怕。用Rust寫程序,遠離未定義行爲、數據競爭和內存安全問題。更別說,Rust運行速度快,寫起來有趣,易讀,還幾乎沒有運行時。

內存安全問題如此困難,因爲你無法容易地寫出測試來捕獲它們。如果你在beta階段之前沒有找出bug,那麼這個bug就可能會在代碼中呆幾年,就像一個讀秒的定時炸彈。當然,也有Valgrind這類的工具,來輔助你捕獲這些bug。但是如果在執行時,沒有觸發內存問題,或這類工具生成的代碼在運行時,沒有執行,那麼它們也捕獲不到。

所以,通過使用Rust,我們消除了一大類最複雜和最不可預測的錯誤。

Rust中內嵌了形式化證明理論,不過僅限於對內存安全和併發。Rust在內部用邏輯證明了你的程序是正確的。這也就是你爲什麼寫Rust代碼會寫得如此有信心的原因。你的每一次編譯,都有一組數學理論在爲你提供證明服務。

在很長一段時間內,像Haskell這種函數式編程語言的一大殺手級特性就是可以比較容易地進行形式化證明,而這對於傳統的命令式編程語言是不可能的(因爲有共享可變性,不安全的指針運算,和不可控的副作用)。但Rust的出現,改變了這種情況,作爲一個命令式語言,它卻走在被證明的路上。到目前爲止,標準庫的一部分已經被證明是正確的,見鏈接

綜合上述原因,Rust正在成爲一個最先進的主流通用目的語言之一,可以用來寫可靠的、安全的、高效的程序。

前景展望

知乎“如何看待 Rust 的應用前景?”最高贊回答

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章