程式語言的戰爭:Rust將取代C?
由自由軟體社群Mozilla主導開發的通用、編譯型程式語言Rust,正在進入我們的系統。第一個 Rusted 驅動程序正在被導入到 Linux 中,而 Microsoft 的 Azure 首席技術長Mark Russinovich 表示,我們應該放棄到現在都使用的C/C++系統語言,轉而支持 Rust。
一直以來,語言戰爭都是科技領域的一部分。C++ 於 1985 年首次以商業形式出現,那一年,任天堂娛樂系統登陸美國。第一代系統工程師都已經從時髦的年輕工程師變成了高級管理人員,對他們來說,舊方式是成功構建IT基礎的關鍵,Rust 能做到的一切,C++ 也能做,因此建議他們使用Rust甚至可說是一種侮辱。
舊方法確實可以構建新事物,這就是為什麼任何足夠古老的系統,像是法律和醫療行業,都還充滿了拉丁語,而宗教還可以追溯到鐵器時代。
不過宗教正是個好例子,遲早,過去的語言會無法完全符合當前需求。就像人們樂於為「網路分享器」創建拉丁術語(ductor interretus,如果你想知道),又像基督教在很大程度上,也被重新編譯,才能更貼切地與現在接軌。
對於C/C++來說,其於現今不足的原因出在於:異構分佈式計算的普遍性。異構分佈式計算可以:協調的使用性能、結構各異的機器來滿足不同的計算需求,並使代碼(或代碼段)以獲取最大總體性能方式來執行。但以C/C++來說,所有代碼都在共享環境中,只用一些非常簡單的方法來分隔,因此大家都會搞混,關於有多少任務在多少個操作系統實例上運行,代碼又來自哪裡?
也因為如此,一個錯誤就要等到推出下一個版本才能提供修復,但這個錯誤,現在就可能會立即影響數百萬人的隱私,或者在一個國家的衛生系統中,留下一個漏洞。這些後果可能會在瞬間發生,善後卻非易事。C/C++希望你自己手動修復,但是Rust能自己知道這一切。
一些資深工程師說:「但我們可以自己做,很多已經進行了 30 年,也沒有發生問題」。但我們不能因為外科醫生可以安全地取出脾臟,就在 eBay 上出售帶有「即時切除闌尾手術」功能的手術刀。Rust可以在不影響性能的情況下,降低風險,這代表,我們可以有更多的人,更快速、更好的編寫程式碼。
雖然Rust不是魔法。但它了解數據在現代環境中,容易受到哪種編程疏忽的影響,並且知道如何在編譯時,以不損害性能的方式,強制執行安全性。
成功的語言對需求做出回應,並為產生這些需求的時代指明方向。 轉型絕非易事。雖然C/C++ 中的系統級技能庫遠遠大於 Rust,但Rust具有成為第三代標誌語言的潛力。Rust建立在過去的基礎上,解決了現今的問題,其可能能夠帶來更多人才,創造未來。
(記者/莊閔棻)
參考資料:The Register
瀏覽 1,848 次