前言
Rust 是 Mozilla 的一個新的編程語言,由web語言的領軍人物Brendan Eich(js之父),Dave Herman以及Mozilla公司的Graydon Hoare 合力開發。
創建這個新語言的目的是為了解決一個很頑疾的問題:軟件的演進速度大大低於硬件的演進,軟件在語言級別上無法真正利用多核計算帶來的性能提升。Rust是針對多核體系提出的語言,並且吸收一些其他動態語言的重要特性,比如不需要管理內存,比如不會出現Null指針等等。
最新資訊
微軟去年宣佈在涉及安全的模塊中會使用 Rust 來替代 C、C++ 和其他語言,以改進應用的安全情況,並解釋為什麼他們認為 Rust 目前是業界採用的最佳選擇。除了具備性能與安全方面的特性,Rust 還擁有健康的生態和社區,綜合起來各種因素最終推動他們採用 Rust。
現在,另一家科技巨頭 —— 蘋果也表示對將 C 代碼移植到 Rust 感興趣,希望投身到使用 Rust 編寫代碼的潮流中。從它最近發佈的一則招聘公告來看,蘋果最初從 C 到 Rust 的過渡似乎集中在他們基於 Linux 的服務器端平臺上,此職位由蘋果雲流量團隊(Apple Cloud Traffic team)提供。
蘋果在招聘公告中寫到:“我們構建的系統的性能和安全性至關重要。目前使用異步 I/O 和線程來分配工作負載,直接與底層 Linux 內核接口進行交互。首次成功使用 Rust 之後,我們正在將已建立的代碼庫從 C 遷移到 Rust,並計劃未來主要使用 Rust 構建新功能。”
不過到目前為止,我們對蘋果“首次成功使用 Rust”的分享還知之甚少。但考慮到不少組織都是因為安全性而對 Rust 感興趣,並且 Rust 還帶來性能方面的提升,所以蘋果會有這樣的感慨也不令人感到意外。
最後不妨大膽猜測一下,蘋果是否會將全部客戶端軟件遷移至使用 Rust 編寫?
特性零成本的抽象
<code>// This code is editable and runnable!
fn main() {
// A simple integer calculator:
// `+` or `-` means add or subtract by 1
// `*` or `/` means multiply or divide by 2
let program = "+ + * - /";
let mut accumulator = 0;
for token in program.chars() {
match token {
'+' => accumulator += 1,
'-' => accumulator -= 1,
'*' => accumulator *= 2,
'/' => accumulator /= 2,
_ => { /* ignore everything else */ }
}
}
println!("The program \"{}\" calculates the value {}",
program, accumulator);
}/<code>
閱讀更多 IT實戰聯盟 的文章