The Future of Rust

Matthias Endler

Rust 的未來

首先讓我把話說在前頭:是的,這個標題有點譁眾取寵。你或許也會問,我憑什麼來談 Rust 的未來。畢竟,我既不是 Rust 核心團隊的成員,也不是 Rust 生態系的主要貢獻者。對此我的回答是:為什麼不行呢?思考廣義的系統程式設計,尤其是 Rust 的未來,本身就是一件有趣的事。

Ferris 是 Rust 非官方吉祥物
Ferris 是 Rust 非官方吉祥物
來源:插圖由 FreePik.com 提供

你可能已經聽過核心團隊承諾的近期目標。像是更快的編譯時間與更平緩的學習曲線。這篇文章談的不是這些。相反地,我想探索未來五到十年內 Rust 可能大放異彩的一些更前瞻的領域。想要取得巨大成功,我們兩者都需要,根基與翅膀

資料科學

目前,資料科學最受歡迎的語言是 Python、Java、R 和 C++。

資料科學程式語言熱門度
資料科學程式語言熱門度(來源)。

我們觀察到,雖然原型大多以 Python 和 R 這類動態型別語言撰寫,但一旦演算法達到可上線的水準,往往會為了可擴展性而以 C++ 等更快的語言重寫。Rust 在不久的將來成為 C++ 強勁的競爭對手,並非不可能。以 Rust 撰寫的機器學習函式庫 leaf 的基準測試成績,已經令人印象深刻。

3A 遊戲大作

遊戲是 Rust 可能大放異彩的另一個領域。對遊戲工作室而言,能夠輕鬆支援多個平台具有財務上的吸引力。Cargorustup 讓跨平台編譯變得簡單。現代化的函式庫也正逐步填補大型遊戲開發在工具鏈上的缺口。Rust 對 Vulkan 3D 圖形 API 的支援或許已經是同類中最好的。然而,真正的殺手級特色在於安全性與效能的獨特結合。如果你把遊戲賣給一百萬名玩家、讓他們掏錢支持,你最好確保遊戲不會當機……對吧?

話雖如此,第一款 3A 級 Rust 遊戲可能仍遙遙無期。這裡是 Blizzard 在 2017 年對 Rust 的看法

系統工程

或許——終有一天——我們也會看到針對 Rust 核心的 formal verification(形式化驗證)。屆時,像 RustBelt 這樣的專案就能在航太產業等注重安全的領域開啟新的機會。想像一艘由 Rust(或其精神繼承者之一)控制的太空船安全降落在火星上,不是很美好嗎?我很好奇 SpaceX 是否已經在嘗試 Rust……

與其他語言整合

還有許多我尚未提及的領域。例如金融與醫療軟體,或是科學運算,僅舉幾例。在所有這些情況下,Rust 都可能是合適的選擇。目前最大的進入障礙,或許是龐大的遺留程式碼。許多產業仍維護著以 Cobol、C 或 Fortran 撰寫的大型程式碼庫,這些程式碼並不容易重寫。

幸運的是,Rust 已被證明能與其他語言良好協作。部分原因在於其與 C 的高度相容性,部分原因則在於它沒有 Runtime(執行環境)或 Garbage Collector(垃圾回收)。一個典型的模式是,用 Rust 來最佳化應用程式中對安全性/效能有嚴格要求的核心部分,其餘部分則保持不變。我認為這種共生關係長期來看只會更加緊密。甚至還有像 Corrode 這樣雄心勃勃的專案,嘗試自動將 C 程式碼翻譯成 Rust。

總結

整體而言,我認為 Rust 在那些安全性、效能或對機器的完全掌控至關重要的領域具有巨大的潛力。有了像 Rust 和 Crystal 這樣的語言,整整一類錯誤已成為過去。沒有空指標、沒有記憶體區段錯誤、沒有記憶體洩漏、沒有資料競爭。令我感到鼓舞的是,未來的程式設計世代將會把這一切視為理所當然。

原文由 Matthias Endler 發布

本文章由 muse-spark-1.2-contributor 進行翻譯