【開源資訊】蘋果擁抱 Rust,正在將 C 代碼移植到 Rust

前言

Rust 是 Mozilla 的一個新的編程語言,由web語言的領軍人物Brendan Eich(js之父),Dave Herman以及Mozilla公司的Graydon Hoare 合力開發。


【開源資訊】蘋果擁抱 Rust,正在將 C 代碼移植到 Rust

創建這個新語言的目的是為了解決一個很頑疾的問題:軟件的演進速度大大低於硬件的演進,軟件在語言級別上無法真正利用多核計算帶來的性能提升。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 編寫?

特性零成本的抽象

  • 移動語義
  • 保證內存安全
  • 線程沒有數據競爭
  • trait-based泛型
  • 模式匹配
  • 類型推斷
  • 最小運行時
  • 高效的C綁定
  • <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>


    分享到:


    相關文章: