Rust 正在「吞噬」我們的系統(tǒng),C/C++ 是時候下課了
發(fā)布日期:2022/9/29 11:40:23 瀏覽量:
C/C++是時候下課了,Rust 才是未來
Rust 正快速滲透我們的系統(tǒng)。
首個Rust編寫的驅動程序正入駐Linux,微軟 Azure 首席技術官 Mark Russionvich 也直言 C/C++這對主流系統(tǒng)語言是時候下課了,Rust 才是未來的發(fā)展方向。
但不少從業(yè)者仍然抱有反對意見。技術生態(tài)系統(tǒng)向來充斥著沖突與對抗,長久以來的編程語言戰(zhàn)火已經(jīng)不止一起。只不過這一回,戰(zhàn)爭的賭注比以往任何時候都更高。
C++最初于 1985 年進入商業(yè)應用,也就是任天堂游戲機 NES 登陸美國的那一年。當時那些時髦前衛(wèi)的年輕程序員,如今已成長為各家企業(yè)的高管和頂梁柱,而他們對于 IT 基礎設施的認知往往也永遠留在了過去那個年代。于是其中很多人成了Rust的反對者,認為 Rust 能做的,C++本來就能做,而且好的程序員根本就不需要在編程語言層面尋求額外幫助。
沒錯,舊工具仍然有效,甚至能夠滿足大部分人的開發(fā)需求。再加上長期積累下來的技術慣性,導致如今市面上仍充斥著堪稱“活化石”般的古老系統(tǒng)。法律和醫(yī)療行業(yè)仍在使用拉丁術語,宗教中的很多思維方式可以一路追溯到鐵器時代,道理都是相同的。
但很多事實已經(jīng)向我們證明,誕生于過去的語言終將不足以描述這個新世界。所以接下來就看誰能更好地緊跟時代的腳步,于是舊的事物決定以新的形式進行重新“編譯”,以更好地同當今世界相兼容。
C/C++把安全開關交給開發(fā)者,Rust:“放著我來”
而導致C/C++與現(xiàn)實世界無法兼容的巨變,就是無處不在的異構分布式計算。
讓我們放下手頭的計算任務,看看上一代人和下一代人的計算應用場景。有多少任務在多少種操作系統(tǒng)實例上運行?這些代碼部署在哪里?沒錯,大家馬上會意識到大部分代碼都駐留在共享環(huán)境當中,依靠某些底層技術實現(xiàn)沙箱/分區(qū)/隔離。
遙想當年,對 bug 的修復只能依靠發(fā)布新版本,這種方式在如今這個時代可能立即影響到數(shù)百萬人的隱私安全,或者在國家層級的衛(wèi)生系統(tǒng)中給勒索軟件留下可乘之機。在這個 IDE 鍵入內容會被快速轉化為全局輸出的高效時代,C/C++仍然把安全的開關交給每位開發(fā)者,而 Rust 則表示“放著我來”。
沒錯,一些內核開發(fā)高手用不著編程語言的協(xié)助,畢竟他們已經(jīng)用這種方式工作了 30 年都沒出什么大問題。但請記住,這個世界上的開發(fā)者不全是高手,還有很多有待成長、對安全細節(jié)懵懵懂懂的新人。Rust 能在不影響性能的前提下降低風險,讓更多人快速編寫出高質量代碼,這有什么不好的?
當然,Rust 并不是萬金油,它只是更理解數(shù)據(jù)在現(xiàn)代環(huán)境中可能受到哪些意外疏忽的影響,而且知道如何在編譯時以不犧牲性能的方式強制執(zhí)行安全保護。這只是把起點設置得更完善,絕不是要限制開發(fā)者們的奇思妙想。
成功的語言需要與時俱進
成功的語言應該對需求做出反應,給孕育出這些需求的時代指明前進的道路。
C 的出現(xiàn)伴隨著小型計算機的成長,而后延伸至 8 位微型計算機,在這里效率和可移植性才是重中之重。隨著個人計算機強大到足以對復雜數(shù)據(jù)執(zhí)行復雜任務,C++快速跟進解決了軟件范圍擴大的問題,并在 1990 年代趨于穩(wěn)定。
與二者類似,Rust 誕生自 2010 年代的計算成熟度,主要強調安全性、可靠性和并發(fā)性,也就是分布式時代需要解決的核心問題。
轉型絕非易事。
開源項目需要由大量熟練的開發(fā)者參與貢獻,并由經(jīng)驗豐富的專家進行代碼檢查和修復。從這個方面講,C/C++的系統(tǒng)技能積淀更厚重,遠非 Rust 可比。但是,真正優(yōu)秀的系統(tǒng)工程師應該關于進行形式與抽象思考,畢竟這才是不同編程語言之間的最大共性。
所以到底能不能完成語言交接,很大程度上取決于文化和自我意識,而絕非技術熟練度。任何人都很難徹底放下自己磨練多年的技藝,馬上轉投新語言的懷抱,但只要這代表著新時代下的實際生產(chǎn)力要求,我們就必須拋開成見、做正確的選擇。
其實我們這些經(jīng)歷過變革的群體是幸福的一代人。1970 年代,信息技術一步步從只有銀行業(yè)、科學家們關心的小眾概念,發(fā)展成了影響每個人日常生活的普適成果,而這樣的顛覆式轉變只經(jīng)歷了兩代系統(tǒng)語言。這是專屬于開發(fā)者的 moment,是只有 IT 行內人才能產(chǎn)生共鳴的美妙體驗。
從現(xiàn)實來看,Rust 有著成為第三代語言標桿的所有特質。它站在巨人的肩膀上,專注于解決現(xiàn)實問題,有望釋放出更多人的開發(fā)才能以創(chuàng)造更美好的未來。這既是種技術變革,也是一波文化變革。人類這個物種向來不憚于直面時代的更迭與挑戰(zhàn),而新的進擊鐘聲已經(jīng)敲響。所以請大家放平心態(tài),畢竟 Rust 終有一天也將被取代,正是這樣的傳承與發(fā)展構成了人類社會輝煌燦爛的歷史。
https://www.theregister.com/2022/09/26/rust_column/
馬上咨詢: 如果您有業(yè)務方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術,還有行業(yè)經(jīng)驗積累。
QQ: 39764417/308460098 Phone: 13 9800 1 9844 / 135 6887 9550 聯(lián)系人:石先生/雷先生