10年后 Rust 還會(huì)存在嗎?
在本文中,我們將回顧該Rust的當(dāng)前狀態(tài)(它到底有多老還是多年輕?),一個(gè)語(yǔ)言長(zhǎng)期存在的三個(gè)標(biāo)志是什么(劇透一下,Rust在這三個(gè)方面都做得很好)。
下圖是眾所周知的采用一項(xiàng)技術(shù)的生命周期。不用說(shuō),Rust仍處于早期階段。
從廣義上講,我們可以說(shuō)Rust在web/后端和系統(tǒng)編程等大多數(shù)領(lǐng)域都處于早期采用者階段,因?yàn)橄窆雀?、Facebook和微軟這樣的公司都在大力投資Rust,并用Rust編寫(xiě)了大型系統(tǒng),為他們的云產(chǎn)品提供動(dòng)力。
例如,微軟Azure的首席技術(shù)官M(fèi)ark Russinovich表示,新項(xiàng)目應(yīng)該用Rust編寫(xiě),而不是C或C++?,F(xiàn)在Linux內(nèi)核和Windows內(nèi)核都包含Rust代碼。
在嵌入式開(kāi)發(fā)中,我們必須將不同的行業(yè)分開(kāi)。例如,在汽車(chē)項(xiàng)目中,由于有了 Ferrocene 和 OxidOS,Rust已經(jīng)過(guò)了創(chuàng)新者階段,進(jìn)入了早期采用者階段。至于其他行業(yè),如航空航天、國(guó)防和醫(yī)療行業(yè),Rust仍處于創(chuàng)新者階段。
有些游戲(如:《Way of Rhea》)是用Rust編寫(xiě)的,可以在Steam上看到,但整個(gè)游戲行業(yè)仍處于創(chuàng)新階段。
這對(duì)于一個(gè)10年前才發(fā)布了第一個(gè)穩(wěn)定版本的語(yǔ)言來(lái)說(shuō),Rust在各行各業(yè)的廣泛滲透是相當(dāng)令人印象深刻的。
一項(xiàng)技術(shù)要想跨越鴻溝,或者成為主流,它需要在一個(gè)非常特定的領(lǐng)域或使用場(chǎng)景中被認(rèn)為是非常有效的。
在數(shù)字基礎(chǔ)設(shè)施中,(由Google, Microsoft, Apple等)已經(jīng)確定,大型C/C++代碼庫(kù)中約70%的安全漏洞是內(nèi)存安全問(wèn)題,這意味著內(nèi)存不安全是所有軟件都需要解決的問(wèn)題,而Rust已經(jīng)被證明可以消除這類(lèi)漏洞。
在確定Rust“非常成功”地解決了關(guān)鍵基礎(chǔ)設(shè)施中普遍存在的內(nèi)存安全問(wèn)題之后, 我們能夠確定Rust語(yǔ)言超越了鴻溝。但問(wèn)題仍然存在:Rust在10年內(nèi)還會(huì)存在嗎?
判斷一門(mén)編程語(yǔ)言是“有生命力的”,通常有三個(gè)標(biāo)準(zhǔn):
- 許多公司(而不僅僅是業(yè)余愛(ài)好者)都在使用它;
- 有一個(gè)穩(wěn)定和成熟的生態(tài)系統(tǒng);
- 它不僅在核心方面,而且在外圍工具和庫(kù)方面都在進(jìn)行開(kāi)發(fā)。
重要的用途
從長(zhǎng)遠(yuǎn)來(lái)看,一種語(yǔ)言要保持廣泛的使用,它需要被行業(yè)采用,并應(yīng)用于不同的領(lǐng)域,這說(shuō)明它的可靠性和多功能性。強(qiáng)勁的就業(yè)市場(chǎng)、活躍的社區(qū)和堅(jiān)實(shí)的教育資源,突顯了它的廣泛接受度和生命力。
大公司的投資
一些大公司(如谷歌、Facebook、微軟、亞馬遜)已經(jīng)在Rust上押下了重注。他們不僅在自己的代碼庫(kù)中使用這種語(yǔ)言,而且還在其生態(tài)系統(tǒng)中進(jìn)行投資。這些公司的支持對(duì)于語(yǔ)言的長(zhǎng)期可持續(xù)性非常重要。
最近投資的一些例子:
- 谷歌向Rust基金會(huì)捐贈(zèng)了100萬(wàn)美元用于互操作計(jì)劃,以改進(jìn)工具的互操作性。
- 微軟對(duì)Rust進(jìn)行了投資,其中包括對(duì)Rust開(kāi)發(fā)工具的1000萬(wàn)美元投資和對(duì)Rust基金會(huì)的100萬(wàn)美元捐款
商業(yè)產(chǎn)品和支持
一些以安全為目標(biāo)的工具鏈已經(jīng)在Rust中開(kāi)發(fā)出來(lái),并且提供了長(zhǎng)期的商業(yè)支持。
- Ferrocene是一種Rust編譯器,用于汽車(chē)行業(yè)的安全關(guān)鍵用途,并已通過(guò)ISO 26262認(rèn)證。
- AdaCore使用Rust開(kāi)發(fā)了Gnat Pro,目標(biāo)是航空航天行業(yè)。
- HighTec為英飛凌AURIX開(kāi)發(fā)了ISO 26262認(rèn)證的Rust編譯器開(kāi)發(fā)平臺(tái),這對(duì)汽車(chē)行業(yè)至關(guān)重要。
- 安全關(guān)鍵Rust聯(lián)盟由AdaCore、Arm、豐田和其他公司成立,其目標(biāo)是支持在安全關(guān)鍵軟件中負(fù)責(zé)任地使用Rust編程語(yǔ)言。
生態(tài)系統(tǒng)的成熟
Rust生態(tài)系統(tǒng)的成熟度很難量化,但它自誕生以來(lái)一直在穩(wěn)步增長(zhǎng)。它獲得了“大型科技公司”、專(zhuān)業(yè)人士和愛(ài)好者的關(guān)注、使用和支持。
增長(zhǎng)
眾所周知,自2016年以來(lái),Rust一直是Stack overflow“最受歡迎的語(yǔ)言”,并在2023年成為“最受尊敬的語(yǔ)言”。同樣,Rust(連同Dart)是2023年增長(zhǎng)最快的社區(qū)(即開(kāi)發(fā)人員數(shù)量),從2022年到2024年,規(guī)模幾乎翻了一番。
從crate.io中下載的crate的數(shù)量呈指數(shù)級(jí)增長(zhǎng):
圖片
截至目前,GitHub上有355k個(gè)Rust項(xiàng)目。
經(jīng)費(fèi)
大多數(shù)編程語(yǔ)言都是由一家大型科技巨頭支持的。以谷歌開(kāi)發(fā)的Go和蘋(píng)果支持的Swift為例。
Mozilla與四家科技巨頭(AWS、華為、谷歌和微軟)聯(lián)手創(chuàng)建了Rust基金會(huì):
“Rust基金會(huì)是一個(gè)獨(dú)立的非營(yíng)利組織,致力于管理Rust編程語(yǔ)言,培育Rust生態(tài)系統(tǒng),并支持一組維護(hù)人員管理和開(kāi)發(fā)項(xiàng)目?!?/p>
這意味著沒(méi)有一家公司在幕后操縱一切。此外,許多幫助形成這種語(yǔ)言的志愿者現(xiàn)在被亞馬遜和華為等公司雇傭,全職從事編譯器的工作。因此,Rust所建立的基礎(chǔ)(包括財(cái)務(wù)和技術(shù))比大多數(shù)其他語(yǔ)言更強(qiáng)大、更多樣化。
內(nèi)存安全
Rust是唯一一種將內(nèi)存安全與c語(yǔ)言的性能和系統(tǒng)語(yǔ)言的功能結(jié)合在一起的語(yǔ)言。我們看到,在日常使用和依賴(lài)的軟件中,對(duì)內(nèi)存安全的需求正變得越來(lái)越普遍。
持續(xù)發(fā)展
Rust是一種具有廣泛使用的語(yǔ)言,其用于從嵌入式設(shè)備到后端服務(wù)到高性能存儲(chǔ)引擎等各種項(xiàng)目。由于Rust的高適應(yīng)性,這是可能的。由于其出色的C/C++兼容的外部函數(shù)接口,它可以集成到現(xiàn)有的代碼庫(kù)中。它還通過(guò)多個(gè)運(yùn)行時(shí)(如Wasmtime和Cloudflare的wrangler)提供了一流的WebAssembly支持。
我們之前提到Rust包的下載量正以指數(shù)級(jí)的速度增長(zhǎng),開(kāi)發(fā)者的工作效率也在提高,可用的crate數(shù)量每年翻一番,這表明大多數(shù)Rust開(kāi)發(fā)都是在與工作相關(guān)的項(xiàng)目中進(jìn)行的。
持續(xù)的發(fā)展不會(huì)止步于生態(tài)系統(tǒng)層面,語(yǔ)言本身也在不斷發(fā)展。
Rust的挑戰(zhàn)
贊助可能會(huì)枯竭:正如我們之前提到的,Rust的贊助并不依賴(lài)于單一的大型科技公司,而是一個(gè)財(cái)團(tuán),所以我們認(rèn)為這種情況不太可能發(fā)生,但也不是不可能。
- 生態(tài)系統(tǒng)可能會(huì)分裂:Node生態(tài)系統(tǒng)之前就發(fā)生過(guò)這種情況(并且已經(jīng)有了一個(gè)Rust分支)。這當(dāng)然不是我們可以預(yù)測(cè)的事情。
- Rust可能會(huì)變得過(guò)于復(fù)雜:雖然我們承認(rèn)Rust在發(fā)展過(guò)程中可能會(huì)增加復(fù)雜性,但我們的印象是Rust社區(qū)正在積極地平衡新特性與可維護(hù)性和可用性。事實(shí)上,除了異步Rust之外,該語(yǔ)言已經(jīng)達(dá)到了相對(duì)成熟的程度。
- 雇傭Rust開(kāi)發(fā)者是一個(gè)挑戰(zhàn):這個(gè),我們必須承認(rèn)。
總結(jié)
Rust正處于其歷史上一個(gè)激動(dòng)人心的時(shí)刻。隨著大公司在Rust上的大量投資和工程師對(duì)這門(mén)語(yǔ)言的擁抱,我們相信Rust有一個(gè)光明的未來(lái)。