不少語言都依然難以解決 內存安全 和 線程安全 兩個問題。前端
06 年 Graydon Hoare 着手開發新的編程語言,名爲 Rust。 Rust 名稱源自 鏽菌(Rust Fungi)也有鐵鏽的意思,字形上柔和了 Trust 和 Robust 暗示 「信任」 和 「魯棒性」。程序員
Rust 應該是一個同時追求安全、併發和性能的現代系統級編程語言web
Rust 要保證內存安全首先要作的是保證類型安全。 類型安全有如下好處: - 容許編譯器偵測無心義甚至無效的代碼,暴露程序中隱含的錯誤。 - 能夠爲編輯器提供有意義的類型信息,幫助優化代碼。 - 能夠加強代碼的可讀性,更直白闡述開發者的意圖。 - 提供了必定程度的高級抽象,提高開發效率。編程
簡單講就是不會出現內存訪問錯誤。 當程序訪問未定義內存纔會產生內存錯誤,通常會出現一下集中狀況: - 引用空指針 - 使用未初始化內存 - 釋放後使用,也就是使用懸垂指針 - 緩衝區溢出,好比數組越界 - 非法釋放已是放過的指針或未分配的指針,也就是重複釋放數組
- 全部權系統。每一個被分配到的內存都有一個獨佔期全部權的指針。只有當前指針被銷燬時,其對應的內存才能隨之被釋放。
- 借用和生命週期。每一個變量都有其生命週期,一旦超出生命週期,變量就會自動釋放。若是有借用,則能夠經過標記生命週期參數供編譯器檢查的方式,防止出現懸垂指針,也就是釋放後使用的狀況。
複製代碼
- 沒有空指針
- 默認不可變
- 表達式
- 高階函數
- 代數數據類型
- 模式匹配
- 泛型
- trait 和關聯類型
- 本地類型推導
複製代碼
- 仿射類型(Affine Type),該類型用來表達 Rust 全部權中的 Move 語義
- 借用、生命週期.
複製代碼
Rust 中零成本抽象的基石就是泛型和 trait。安全
- 實踐性,首先必須可以應用於開發工業級產品,其次要易於學習和使用。
- 有益性,是指可以對業界產生積極的效果或影響。
- 穩定性,指語言自身要穩定。在解決同一個問題時,不會由於使用者不一樣而出現隨機的結果。
複製代碼
實踐性markdown
有益性和穩定性網絡
Rust 語言解決了內的村安全和併發安全的問題,能夠極大的提高軟件的質量。Rust 提供了 C 和 C++ 以外的更好選擇,由於 Rust 是對安全、併發和性能都很看重的語言,能夠用於嵌入式系統、操做系統、網絡服務等底層系統,也能夠用於 web 應用開發、遊戲引擎和集齊學習,webassembly 能夠用來開發前端組件。同時能夠用於區塊鏈技術。併發