Rust 的未來
原文由 Matthias Endler 于 發布,訂閱此部落格
首先,讓我把話說在前頭:沒錯,這個標題是有點譁眾取寵。你或許也會問,我憑什麼來談 Rust 的未來?畢竟我既不是 Rust 核心團隊的成員,也不是 Rust 生態系的重要貢獻者。對此我的回答是:為什麼不行呢?思考系統程式設計的未來,特別是 Rust 的未來,本身就是一件很有趣的事。
來源:插圖由 FreePik.com 提供
你可能已經聽過核心團隊為自己立下的近期目標。像是更快的編譯速度、更平緩的學習曲線等等。這篇文章要談的不是這些。相反地,我想探索一些更特別的領域,看看未來的五到十年間,Rust 可能在哪些地方大放異彩。想要成就大事,我們兩者都需要,根與翅膀。
資料科學
目前,資料科學領域最熱門的語言是 Python、Java、R 和 C++。

我們觀察到,雖然原型大多是用 Python 和 R 這類動態型別語言寫成的,但一旦演算法達到可上線的水準,往往會為了擴展性而用 C++ 這類更快的語言重寫。Rust 在不久的將來成為 C++ 強勁的競爭對手,並非難以想像。以 Rust 寫成的機器學習函式庫 leaf,其效能測試結果就已經相當令人驚豔。
3A 遊戲大作
遊戲是另一個 Rust 可能大放異彩的領域。對遊戲工作室來說,能夠毫不費力地支援多個平台,在財務上非常有吸引力。Cargo 和 rustup 讓跨平台編譯變得輕鬆。現代化的函式庫也正慢慢補齊大型遊戲開發所需的工具缺口。Rust 對 Vulkan 3D 圖形 API 的支援甚至可能是同類中最好的。不過,真正的殺手級特色在於安全性與效能的獨特結合。如果你要把遊戲交到一百萬名玩家手上、讓他們為你掏錢,你最好確保它不會當機……對吧?
話雖如此,第一款 3A 級的 Rust 遊戲或許仍遙遙無期。這是 Blizzard 在 2017 年對 Rust 的看法。
系統工程
或許——最終——我們也會看到 Rust 核心的形式化驗證。屆時,像 RustBelt 這樣的專案,就能在航太這類高度重視安全的產業中開啟新的機會。想像一艘由 Rust 控制的太空船能安全降落在火星上,那該有多好?(或是它的某個精神後繼者。)不知道 SpaceX 是否已經在嘗試 Rust 了……
與其他語言整合
還有很多我尚未提及的領域。舉例來說,金融與醫療軟體或是科學運算,僅舉幾例。在所有這些情況下,Rust 都可能是個不錯的選擇。目前最大的進入障礙,或許是龐大的遺留程式碼。許多產業仍維護著以 Cobol、C 或 Fortran 寫成的大型程式碼庫,這些程式碼並不容易重寫。
幸好,Rust 已被證明能與其他語言配合得非常好。一部分是因為它與 C 有很強的相容性,另一部分則是因為它沒有執行環境或垃圾回收機制。一個常見的模式是,用 Rust 來處理應用程式中對安全性/效能有嚴格要求的部分核心,而其餘部分則保持不動。我認為這種共生關係長遠來看只會變得更緊密。甚至還有像 Corrode 這樣雄心勃勃的專案,試圖將 C 程式碼自動轉譯為 Rust。
總結
整體而言,我認為 Rust 在那些安全性、效能或對機器的完全掌控至關重要的領域,具有巨大的潛力。有了 Rust 和 Crystal 這類語言,整整一類錯誤已成為過去式。沒有空指標、沒有段錯誤、沒有記憶體洩漏、沒有資料競爭。想到未來的程式設計師們將會把這一切視為理所當然,就讓人感到振奮。
隨機一篇部落格
留言
登入後參與討論