文章目錄html
Rust 是一種兼顧內存安全、高併發和穩定運行的編程語言。它有着驚人的運行速度(有些領域甚至超過 C/C++),可以防止運行錯誤,並保證線程安全。RUST 語言使每一個人都可以構建可靠、高效的軟件。程序員
在編程領域,人們一般從如下幾個方面判斷語言的 [好壞] :編程
性能:RUST 在這幾個方面作得都不錯,甚至超過同類語。RUST 沒有 Runtime 和 GC,即 RUST 沒有運行時,也不用垃圾回收。這使得它的運行速度很是快,而且很省內存。瀏覽器
生產率:不得不說,RUST 的文檔寫得很好。出色的文檔和友好的編譯器、一流的包管理器和構建工具、精準的錯誤提示,這些都是 RUST 爲開發者準備好的,咱們只須要將精力放在邏輯上便可。七牛雲存儲
可靠性:RUST 的編譯器很嚴格,它幾乎不容許任何不可控的因素存在。它會在編譯時爲你檢查語法、變量、全部權等內容,避免程序在運行中發生故障。安全
RUST 的可靠性真的很強,這並非吹的。嚴格的編譯器將因患扼殺在萌芽時期,一旦編譯經過,那麼你的程序將變得很是穩定(社區討論到,編譯經過後的程序穩定性在 90% 以)。bash
RUST 是一門靜態語言,這也是它運行速度如此快的緣由之一。在遇到 RUST 以前,我是一名 PYTHON 開發者。PYTHON 最讓人詬病的莫過於速度,不管是 WEB 、網絡仍是程序執行方面,都讓人感到難過。動態語言的優點是靈活、簡短和足夠快的開發速度。靜態語言的優點則是運行速度,爲此,咱們必須犧牲開發速度(當你熟悉以後,其實開發速度也不會差到哪裏去)。網絡
與 PYTHON 這種動態語不一樣,RUST 程序在運行前必須進行編譯,編譯完成後纔可以運行。RUST 的編譯器是 LLVM(底層虛擬機 Low-Level Virtual Machine),一樣使用 LLVM 做爲編譯器的開發語言還有 Swift。併發
每一門語言都應該有本身的定位,雖然最終的結果和開發團隊預想的不一樣。PYTHON 現在被應用在互聯網各個領域,如爬蟲、WEB、深度學習、軟件開發等,雖然 WEB 領域有 JAVA、PHP 和 GO 這樣的強勁對手,但使用 Django、Flask 和 Tornado 的開發者仍然很多。curl
我是一名職業爬蟲工程師,因此爬蟲領域的事我比較清楚,PYTHON 在爬蟲領域幾乎沒有對手,這個領域排名第二的應該是 JAVA,其次是 GO 語言。爬蟲是多變的,爬蟲工程師常常改動它們的代碼,從開發效率和開發時間方面來講,沒有什麼語言比 PYTHON 更省事。爬蟲爬取過程並不追求超高的速度,太快的話會致使目標網站拒絕訪問(大量垃流量是不道德的行爲),若是影響網站運行,那麼就會將本身處於法律邊緣。還有一點, PYTHON 庫很是多,不少東西伸手就用,根本不須要耗費時間去造輪子。綜合考慮來講,爬蟲領域還真的是 PYTHON 更合適一些。
因爲 PYTHON 豐富的生態和極簡的代風格,使它成爲深度學習的首選。PYTHON 佔據着深度學習的大半江,這點是其餘語言難以撼動的。
軟件開發領域,常年以來都被 C# 和 C++ 佔據,系統層面則是 C 和 C++,其餘語言根本沒有參與的能力(相對於 C++ 和 C 來講,GO PYTHON NODEJS JAVA 這些語言太弱了)。
RUST 能作什麼呢?適合作什麼呢?
RUST 語言對標的是 C 和 C++,但它還具有了抗衡 GO 語言的能力,在深度學習和爬蟲領域也有必定的機會。RUST 被視爲 [系統級] 語言,它可以開發出穩定性超強、運行速度極快的項目。可以成爲系統級編程語言,是由於它無 GC 和 Runtime,它超強的穩定性來源於全部權。
有實際案例證實,RUST 將會成爲下一代操做系統的開發語言。火狐用它編寫了一個名爲 Redox 的類UNIX 操做系統。系統界面以下:
C++ 一直是遊戲和高性能軟件的首選,但不少開發者都會遇到內存(C 語言也有,如懸垂指針)方面的問題。RUST 嚴格的編譯器和良好的設計使它規避了這些問題,它並不會出現內存安全方面的故障。而且,因爲 RUST 和 C++、C 同樣,都是無 GC 和 Runtime 的編程語言,也同爲靜態語言,因此它可以扮演 C 和 C++ 的角色,甚至還有些優點。
有人用 RUST 代替 GO 了嗎?固然有,否則我也不會拋出這個話題,請看:
TiDB 團隊使用 RUST 來構建 TiKV 產品,團隊開發人員在 RUST 大會上有談論過 RUST 與 GO 的選擇。在綜合因素的考慮下,他們最後選擇了 RUST。
一些區塊鏈項目正在/已經從 GO 專爲 RUST,不爲別的,安全。
新的語言,若是沒有表明性項目,那麼就很難斬露頭角。固然,若是有 Google 這樣的大公司推進,事情就會徹底不同(參考 GO 和 Flutter)。但 GO 語言已經有了足夠強大的產品做爲證實,好比 Docker、七牛雲存儲、TiDB 和 Kubernetes。
RUST 生於火狐,由火狐研發人員和 RUST 社區維護。目前來講,RUST 還未出現相似於 Docker 或 Kubernetes 這樣的流行項目,但 RUST 在一些領域已經有了大的邁步,如:
而且,不少大企業都在嘗試將 RUST 融入到生產中。我相信在將來幾年,RUST 確定會大放異彩。
以前提到過,RUST 文檔很友好,咱們能夠經過一個案例瞭解 RUST。
在開始以前,咱們須要下載並安裝 RUST 語言。根據官網文檔教程(若是你們不習慣看英文文檔,能夠到 RUST 中文站查看教程,如下爲 Linux 環境下的安裝,Window 環境安裝以教程爲準)的提示,咱們在終端運行如下命令:
curl https://sh.rustup.rs -sSf | sh
複製代碼
便可完成 RUST 的下載,並安裝 RUST。這會安裝最新穩定版 Rust。過程當中可能會提示你輸入密碼。若是安裝成功,將會出現以下內容:
Rust is installed now. Great!
複製代碼
而後配置環境變量,在 ~/.bash_profile 文件中增長以下內容:
$ export PATH="$HOME/.cargo/bin:$PATH"
複製代碼
配置保存後,使用命令讓其立生效:
$ source ~/.bashrc
複製代碼
一切準備就緒後,咱們就能夠開始編寫代碼了。新建名爲 hello.rs 的文件,並將如下內容寫入 hello.rs:
fn main() {
println!("Hello, world!");
}
複製代碼
代碼編寫完成後,須要進行編譯,才能運行。在終端執行如下命令:
$ rustc hello.rs
$ ./hello
複製代碼
若是看到終端輸出 Hello, world!
則表明程序運行成功。
你已經正式編寫了一個 Rust 程序,成爲一名 Rust 程序員,歡迎!
花裏胡哨的語言咱們見得多了,它們既不安全又慢。多年來,沒有任何語言可以撼 C/C++ 的地位,RUST 的出現使得編程界有了新的氧氣。做爲一名從事爬蟲工做的開發者(接觸的技術較多),我認爲編程語言 [快] 是趨勢,靜態語言是將來。我很喜歡 PYTHON,它的語法簡潔、開發效率超高。但不得不認可,我從心底裏但願 PYTHON 變得更快,但動態語言出身的它決定了它速度的上限,因此我將目標轉投到 RUST 上。GO 語言很是優秀,生態也很好,但我看好 RUST 而不是 GO 的理由是:RUST NO GC NO RUNTIME,SAFTY。
這使得 RUST 必將成爲將來掌控雷電的語言,尤爲是 Redox 的出現,使我更加堅信 RUST 的將來。