Rust 是一個由 Mozilla 主導開發的通用、編譯型程式語言。它的設計準則為「安全,並行,實用」,支援函數式,並行式,程序式以及物件導向的編程風格。
Rust 語言原本是 Mozilla 員工 Graydon Hoare 的私人計畫,而 Mozilla 於 2009 年開始贊助這個計畫,並且在 2010 年首次揭露了它的存在。
Rust 是在完全開放的情況下進行開發,並且相當歡迎社群的回饋。在 1.0 穩定版之前,語言設計也因為透過撰寫 Servo 網頁瀏覽器排版引擎和 rustc 編譯器本身,而有進一步的改善。雖然它由 Mozilla 資助,但它其實是一個共有專案,有很大部分的代碼是來自於社群的貢獻者。
維基百科:https://en.wikipedia.org/wiki/Rust_(programming_language)
專訪黃東旭:從 Python 到 Go 再到 Rust 的二十載程式設計長路
http://www.readhouse.net/articles/155719950/
Rust 一直自稱是一種系統程式語言,也就是和 C 一樣的 System Program Language。
黃東旭的團隊發現 Rust 規避了很多 C++ 的缺陷,C++ 在開發大規模專案的時候存在一些問題和安全隱憂,也就是說如果 C++ 水平不夠高的話,記憶體洩露、懸掛指針、空指針異常等狀況都會頻繁發生,Rust 會運用很多 PL(Programming Language)領域學術界這些年的創新,嘗試解決這些問題。簡言之,黃東旭認為 Rust 能用更少的程式碼,花費更小的代價去寫出安全的程式,也是 Rust 最突出的特色。Rust 換得這項優勢的代價是把某種程度的複雜工作轉嫁給開發者,而非執行時。如果使用 Java 或 Go,當然也可以很輕易地寫出同樣安全的程式,但是其付出的代價卻變成了執行時 GC(Gabage Collection)的開銷。選擇使用 Rust 後,唯一的代價就是程式師的學習成本會稍微高一些,程式師須要稍微轉變一下思維,這就相當於把一部分複雜度移交給了程式師。
如果一個項目能用 C++ 跟 Rust 寫,黃東旭肯定會選擇 Rust,他認為實際上 Rust 反而比 C++ 更容易上手。
Rust 是一個沒有 GC 的語言,其延遲非常穩定,口號是『Zero Cost』,意思是無執行時開銷,而這一特點能夠使效能最大化,因此在黃東旭看來,無論是資料庫,還是作業系統,亦或是瀏覽器核心,都非常適合使用 Rust。
另外 Rust 做得比較好的一個地方就是它和 C Library 這種 Native Code,或者說跟C 語言的互動,其代價確實很小,所以很多時候可以把 Rust 當作一個高效能的膠水語言,比如說一個系統的底層要用 RocksDB,或者用一些 C 的 Library,但是如果在上層需要呼叫時,不管是用 Java、用 JNI 去調用,亦或是使用 Go 的 Cgo 這種框架去調用,其開銷都是很大的。但是如果因此而直接使用 C/C++ 的話,業務開發成本又會比較高,畢竟 C/C++ 這些語言仍然還是比較原始,開發效率相對較低。因此如果使用 Rust 就可以享受這種新語言帶來的開發效率,同時又不會損失掉底層已經寫好的 C 函式庫的效能。