作者 | Clive Thompsonarchive 譯者 | Sambodhi 策劃 | 褚杏娟 2006 年,29 歲的 Hoare 在開(kāi)源瀏覽器公司 Mozilla 當(dāng)程序員。當(dāng)他回到位于溫哥華的公寓時(shí)發(fā)現(xiàn)電梯出了故障,里面的軟件也崩潰了,而這事兒已經(jīng)不只一兩次了。 當(dāng)他爬樓上去時(shí),心里十分很惱火,因?yàn)?Hoare 住在 21 樓?!斑@也太荒唐了,”他心想,“我們搞計(jì)算機(jī)的,連一部正常運(yùn)行的電梯都造不出來(lái)!”Hoare 明白,這類(lèi)很多故障都是程序如何使用內(nèi)存的問(wèn)題。諸如電梯之類(lèi)的設(shè)備中,軟件一般都是用 C 或 C++ 語(yǔ)言編寫(xiě)的,這些編程語(yǔ)言以能讓開(kāi)發(fā)者寫(xiě)出快速、緊湊的代碼而著稱(chēng)。但問(wèn)題在于,這些語(yǔ)言很可能會(huì)在不經(jīng)意間引入內(nèi)存錯(cuò)誤,從而造成軟件崩潰。比如微軟曾估計(jì),他們代碼中有 70% 的漏洞是使用這些程序設(shè)計(jì)語(yǔ)言編寫(xiě)代碼的內(nèi)存錯(cuò)誤所致。 我們中的大多數(shù)人,當(dāng)發(fā)現(xiàn)自己要費(fèi)勁爬上 21 層樓時(shí)都會(huì)感到憤怒,但隨后就拋諸腦后了。不過(guò) Hoare 還是決定做點(diǎn)什么。 他打開(kāi)筆記本電腦,開(kāi)始設(shè)計(jì)一門(mén)新的計(jì)算機(jī)語(yǔ)言,他希望這門(mén)語(yǔ)言可以在沒(méi)有內(nèi)存錯(cuò)誤的情況下,編寫(xiě)出更短、更快的代碼。他以一種非常耐寒的真菌 Rust 的名字命名,并稱(chēng)這種真菌“為了生存而過(guò)度設(shè)計(jì)”。 注:銹病菌類(lèi)(rust disease fungixiubingjun)是引起植物發(fā)生銹病的真菌,屬有隔擔(dān)子菌綱銹菌目。 17 年過(guò)去了,Rust 已經(jīng)成為世界上最流行的新語(yǔ)言之一,也許是最熱門(mén)的。有 280 萬(wàn)程序員使用 Rust,微軟和亞馬遜等公司都認(rèn)為 Rust 是他們未來(lái)發(fā)展的關(guān)鍵。聊天平臺(tái) Discord 利用 Rust 加快了系統(tǒng)的速度,Dropbox 則利用 Rust 將文件與你的計(jì)算機(jī)進(jìn)行同步,Cloudflare 則將 Rust 用于處理 20% 以上的互聯(lián)網(wǎng)流量。 在程序員論壇 Stack Overflow 每年一次的全球開(kāi)發(fā)者調(diào)查中,Rust 連續(xù)七年被評(píng)為程序員最“喜愛(ài)”的語(yǔ)言,甚至美國(guó)政府也在積極推動(dòng) Rust 語(yǔ)言的軟件,來(lái)增強(qiáng)其程序的安全性。 和其他很多成功開(kāi)源項(xiàng)目一樣,Rust 也成為了“谷倉(cāng)”:目前有數(shù)以百計(jì)的鐵桿貢獻(xiàn)者,其中很多都是志愿者。Hoare 本人在 2013 年就離開(kāi)了這個(gè)項(xiàng)目,并且很樂(lè)意地把他交給了其他工程師,其中就有 Mozilla 的一個(gè)核心團(tuán)隊(duì)。 憑什么脫穎而出 一個(gè)人發(fā)明一門(mén)新的程序設(shè)計(jì)語(yǔ)言并不稀奇。許多程序員一直把創(chuàng)建小項(xiàng)目作為自己的副業(yè)。但很少有一門(mén)語(yǔ)言可以像 JavaScript、Python、Java 這樣的著名語(yǔ)言一樣屹立不倒。Rust 是怎么做到的? 要明白為什么 Rust 如此有用,就必須要深入地研究一下程序員是怎樣處理計(jì)算機(jī)內(nèi)存的。 你可以非常簡(jiǎn)單地將計(jì)算機(jī)中的動(dòng)態(tài)存儲(chǔ)器想象成一塊黑板。一個(gè)軟件運(yùn)行時(shí)會(huì)在黑板上不停地寫(xiě)下數(shù)據(jù),記錄哪一個(gè)數(shù)據(jù)在哪里,然后在不需要的時(shí)候擦除。但是,不同的計(jì)算機(jī)語(yǔ)言對(duì)數(shù)據(jù)的處理方法是不一樣的。傳統(tǒng)的 C 或 C++ 等程序設(shè)計(jì)語(yǔ)言被設(shè)計(jì)成,程序員在軟件如何以及何時(shí)使用黑板的問(wèn)題上有很大的權(quán)力。 這種權(quán)力很有用:有了對(duì)動(dòng)態(tài)存儲(chǔ)器如此多的控制,程序員可以讓軟件運(yùn)行得非??焖?。這也是 C 和 C++ 常常用于編寫(xiě)“裸機(jī)”代碼的原因,也就是可以直接與硬件進(jìn)行交互。沒(méi)有搭載像 Windows 或 Linux 操作系統(tǒng)的機(jī)器,包括從透析機(jī)到收銀機(jī),都是基于這樣的代碼運(yùn)行的。(它也適用于更高級(jí)的計(jì)算:有時(shí),操作系統(tǒng)必須和硬件進(jìn)行通信)Windows、Linux 和 MacOS 的內(nèi)核基本上都是用 C 語(yǔ)言編寫(xiě)的。 不過(guò),雖然 C 和 C++ 之類(lèi)的語(yǔ)言很快,但要付出一定的代價(jià)。它們需要程序員密切跟蹤哪些存儲(chǔ)器被寫(xiě)入以及何時(shí)進(jìn)行擦除。萬(wàn)一你不經(jīng)意間忘記擦除了些什么,那很有可能會(huì)造成程序崩潰:軟件稍后可能會(huì)試圖利用那些它認(rèn)為是空的內(nèi)存空間,而那些內(nèi)存空間中卻存在著一些東西?;蛘撸憧梢越o數(shù)字入侵者一個(gè)潛入的方法。黑客們可能會(huì)發(fā)現(xiàn),某個(gè)程序沒(méi)有正確地清理它的內(nèi)存——那些本應(yīng)被刪除的信息(如密碼、財(cái)務(wù)信息等)還留在那兒,并悄悄地將其竊取。C 或 C++ 代碼越長(zhǎng)就越容易出現(xiàn)內(nèi)存錯(cuò)誤,即使是最細(xì)心的程序員,也會(huì)讓軟件充滿(mǎn)大量的漏洞。 無(wú)人機(jī)公司 Fusion Engineering 的聯(lián)合創(chuàng)始人、Rust 庫(kù)團(tuán)隊(duì)的負(fù)責(zé)人 Mara Bos 說(shuō):“在 C 或 C++ 中,你一直都很擔(dān)心自己的代碼會(huì)突然崩潰?!?/p> 在 90 年代,一組新的語(yǔ)言如 Java、JavaScript 和 Python 開(kāi)始風(fēng)靡全球。這些語(yǔ)言采取了完全不同的方式。為了減輕程序員的壓力,它們通過(guò)使用“垃圾收集器”來(lái)自動(dòng)管理內(nèi)存,這些組件會(huì)在軟件運(yùn)行時(shí)定期清理內(nèi)存。轉(zhuǎn)眼間,你就可以編寫(xiě)沒(méi)有內(nèi)存錯(cuò)誤的代碼了。 但是壞處在于,你會(huì)喪失細(xì)粒度的控制,你的程序也會(huì)變得更慢(因?yàn)槔厥諘?huì)占用關(guān)鍵的處理時(shí)間),并且用這種語(yǔ)言編寫(xiě)的軟件需要更多的內(nèi)存。所以,編程的世界大致被劃分為兩個(gè)部分。如果一個(gè)軟件需要快速運(yùn)行或者在嵌入式設(shè)備很小的芯片上運(yùn)行,那么這個(gè)軟件就傾向于使用 C 或 C++ 編寫(xiě)。如果是 Web 應(yīng)用或移動(dòng)設(shè)備應(yīng)用——在代碼世界中越來(lái)越壯大——那么你就得使用較新的、具備垃圾回收特性的程序設(shè)計(jì)語(yǔ)言。 對(duì)于 Rust,Hoare 的目的是創(chuàng)建一門(mén)語(yǔ)言來(lái)這些方法的差異。該語(yǔ)言不要求程序員手工計(jì)算出他們?cè)趦?nèi)存中放置數(shù)據(jù)的位置,Rust 會(huì)做到這一點(diǎn)。但是它對(duì)如何在程序中使用或者復(fù)制數(shù)據(jù),卻有很多嚴(yán)格的規(guī)則。你必須學(xué)會(huì)那些編程規(guī)則,它們比 Python 或 JavaScript 中的那些規(guī)則復(fù)雜得多。 Rust 代碼編寫(xiě)起來(lái)可能會(huì)比較困難,但是“內(nèi)存安全”,你不必?fù)?dān)心無(wú)意中插入了一個(gè)致命的內(nèi)存錯(cuò)誤。最重要的是,Rust 還會(huì)提供“并發(fā)安全”的特性。現(xiàn)代程序可以同時(shí)處理多個(gè)任務(wù),也就是并發(fā)處理。有時(shí)候不同的線(xiàn)程會(huì)在同一時(shí)間對(duì)同一內(nèi)存位置進(jìn)行編輯,而 Rust 的內(nèi)存管理機(jī)制可以避免這一問(wèn)題。 Mozilla 的“書(shū)呆子洞” Hoare 剛開(kāi)始使用筆記本電腦設(shè)計(jì) Rust 的時(shí)候,他就已經(jīng)是一個(gè)擁有十年軟件開(kāi)發(fā)經(jīng)驗(yàn)的老鳥(niǎo)了,當(dāng)時(shí)正在 Mozilla 全職工作。Rust 最初僅僅是他的一項(xiàng)副業(yè)。 Hoare 花費(fèi)數(shù)年的時(shí)間對(duì) Rust 進(jìn)行了研究,并向其他程序員展示了 Rust,結(jié)果引起了不同的反響。他在一封郵件中說(shuō)道,“有些程序員表現(xiàn)出了極大的熱情,但也有許多程序員卻對(duì)我嗤之以鼻,說(shuō)'這樣是行不通的’,或者'這根本就不管用’?!?/p> 盡管如此,Mozilla 的高管們對(duì) Rust 很有興趣。他們認(rèn)識(shí)到 Rust 能夠幫助公司開(kāi)發(fā)出一個(gè)更好的瀏覽器引擎。眾所周知,瀏覽器是一個(gè)非常復(fù)雜的軟件,存在著大量潛在的內(nèi)存錯(cuò)誤。 Patrick Walton 是參與其中的一名員工,他在決定放棄程序設(shè)計(jì)語(yǔ)言的博士學(xué)位后,加入了 Mozilla。他記得,JavaScript 發(fā)明者 Brendan Eich 邀請(qǐng)他參加 Mozilla 的一次會(huì)議,“他說(shuō),'你怎么不來(lái),我們要討論 Rust 的設(shè)計(jì)決定?’” Walton 想著 Rust 聽(tīng)上去很不錯(cuò),于是他與 Hoare 以及一支不斷壯大的工程師團(tuán)隊(duì)一起努力開(kāi)發(fā)這個(gè)語(yǔ)言。許多人,像 Mozilla 工程師 Niko Matsakis 和 Felix Klock,都有研究?jī)?nèi)存和編碼語(yǔ)言的學(xué)術(shù)經(jīng)歷。 參與 Rust 構(gòu)建的工程師:Patrick Walton) (1),他在決定放棄編程語(yǔ)言的博士學(xué)位后加入了 Mozilla;Niko Matsakis (2) 和 Felix Klock (3),他們都有研究記憶和編碼語(yǔ)言的學(xué)術(shù)經(jīng)驗(yàn);Manish Goregaokar (4),目前負(fù)責(zé) Rust 的開(kāi)發(fā)者工具團(tuán)隊(duì) 2009 年,Mozilla 決定正式贊助 Rust。這門(mén)語(yǔ)言將是開(kāi)源的,并且僅由開(kāi)發(fā)者承擔(dān)責(zé)任,但是 Mozilla 愿意通過(guò)為工程師支付薪酬來(lái)啟動(dòng)這個(gè)項(xiàng)目。 Rust 團(tuán)隊(duì)征用了 Mozilla 的一間會(huì)議室,Mozilla 研究部門(mén)的聯(lián)合創(chuàng)始人 Dave Herman 把這間會(huì)議室叫做“書(shū)呆子洞”,并在門(mén)外掛了一張牌子。據(jù) Hoare 的估計(jì),在接下來(lái)的十年里,Mozilla 雇用了十幾名工程師從事 Rust 研發(fā)的全職工作。 “所有人都認(rèn)為自己正在干一件很有意義的事?!盬alton 回憶道。這種興奮還蔓延到 Mozilla 大樓之外。 到 2010 年代初,Rust 已經(jīng)在全球范圍內(nèi)吸引了許多來(lái)自技術(shù)領(lǐng)域的志愿者,其中一些人還在大型科技公司工作。德國(guó)一位高中生是其中一位重要的貢獻(xiàn)者。2010 年,在不列顛哥倫比亞省舉行的 Mozilla 會(huì)議上,Eich 站起身來(lái),表示將有一場(chǎng)有關(guān)實(shí)驗(yàn)語(yǔ)言的演講,Walton 回憶說(shuō):“如果你不是真正的程序設(shè)計(jì)語(yǔ)言愛(ài)好者,就別去,不然會(huì)議就開(kāi)不完了?!?/p> 在 2010 年代早期,Mozilla 工程師和世界各地的 Rust 志愿者們逐步完善了 Rust 的核心——它被設(shè)計(jì)為管理內(nèi)存的方式。他們創(chuàng)建了一個(gè)“所有權(quán)”系統(tǒng),使得一個(gè)數(shù)據(jù)只能被一個(gè)變量所引用,這極大降低了內(nèi)存問(wèn)題發(fā)生的可能性。將你編寫(xiě)的幾行代碼編譯成可以在計(jì)算機(jī)上運(yùn)行程序的 Rust 編譯器,將會(huì)嚴(yán)格執(zhí)行所有權(quán)規(guī)則。如果程序員違反了這些規(guī)則,編譯器將會(huì)拒絕編譯代碼并將其編譯為可運(yùn)行的程序。 Rust 所用的許多技巧都不是什么新點(diǎn)子:“它們大部分都是幾十年前的研究成果了?!盡anish Goregaokar 說(shuō),他管理著 Rust 的開(kāi)發(fā)工具團(tuán)隊(duì),早年為 Mozilla 工作。但是 Rust 的工程師們善于發(fā)掘這些成熟的理念,并將其轉(zhuǎn)化為實(shí)際可行的特性。 隨著團(tuán)隊(duì)對(duì)內(nèi)存管理系統(tǒng)的改進(jìn),Rust 越來(lái)越不需要自己的垃圾收集器了。到了 2013 年,團(tuán)隊(duì)就將垃圾收集器移除了。用 Rust 編寫(xiě)的程序現(xiàn)在運(yùn)行速度更快:在計(jì)算機(jī)進(jìn)行清理時(shí)不會(huì)出現(xiàn)周期性停頓。 Hoare 指出,有些軟件工程師可能會(huì)覺(jué)得 Rust 還是有一點(diǎn)類(lèi)似于垃圾收集的東西,像“引用計(jì)數(shù)”系統(tǒng),這也是它內(nèi)存所有權(quán)機(jī)制運(yùn)作方式的一部分。但是不管怎么說(shuō),Rust 的性能已經(jīng)變得非常高效了。它更接近于裸金屬,低至 C 和 C++ 的地位,但它是內(nèi)存安全的。 Steve Klabnik 表示,移除垃圾收集“催生了一種更簡(jiǎn)潔、更低級(jí)的語(yǔ)言?!盨teve 是一名程序員,在 2012 年參與了 Rust 項(xiàng)目,為該項(xiàng)目撰寫(xiě)了十年的文檔。 一路走來(lái),Rust 社區(qū)也形成了一種以非常友好和開(kāi)放的方式對(duì)待新人的文化?!霸?Rust 社區(qū),沒(méi)有人喊你菜鳥(niǎo),”微軟首席工程師 Nell Shamrell Harrington 說(shuō),他當(dāng)時(shí)在 Mozilla 從事 Rust 的工作,“沒(méi)有問(wèn)題會(huì)被認(rèn)為是愚蠢的?!?/p> 她說(shuō),部分原因是 Hoare 很早就頒布了禁止騷擾的“行為準(zhǔn)則”,任何為 Rust 做出貢獻(xiàn)的人都應(yīng)該遵守這一準(zhǔn)則。社區(qū)接受了它,而且 Rust 社區(qū)的資深成員表示,社區(qū)這一行為準(zhǔn)則吸引了酷兒(指同性戀、雙性戀和跨性別者)和變性者程序員參與到 Rust 中來(lái),比例超過(guò)了其他語(yǔ)言。即使是程序員出錯(cuò),編譯器也會(huì)產(chǎn)生非常友好的錯(cuò)誤信息;它們會(huì)描述這些錯(cuò)誤,并且會(huì)很有禮貌地提出如何修復(fù)這些錯(cuò)誤。 Shamrell Harrington 笑著說(shuō):“當(dāng)我犯錯(cuò)誤時(shí),C 和 C++ 編譯器會(huì)讓我覺(jué)得自己很差勁。而 Rust 編譯器更像是在指導(dǎo)你如何編寫(xiě)超級(jí)安全的代碼。” 終于推出了第一個(gè)版本 到了 2015 年,該團(tuán)隊(duì)執(zhí)著于最終推出一個(gè)“穩(wěn)定”的 Rust 版本,這個(gè)版本足以讓公司為真正的客戶(hù)開(kāi)發(fā)軟件。自從 Mozilla 將 Rust 納入其麾下以來(lái),已經(jīng)過(guò)去了六年,在這段漫長(zhǎng)的開(kāi)發(fā)過(guò)程中,開(kāi)發(fā)者們都很想試用一下這個(gè)演示版本,雖然這個(gè)版本看起來(lái)有點(diǎn)粗糙:“編譯器總是會(huì)出現(xiàn)故障?!盙oregaokar 說(shuō)?,F(xiàn)在是時(shí)候?qū)ⅰ?.0”版本推向世界了。 Walton 記得他花了幾個(gè)小時(shí)俯身在筆記本電腦前,“在過(guò)去的兩個(gè)禮拜里寫(xiě)了 45 頁(yè)左右的文檔。”他回憶道。2015 年 5 月 15 日,團(tuán)隊(duì)終于推出了第一個(gè)版本,成群的 Rust “書(shū)呆子”在世界各地舉行派對(duì)慶祝。 Mozilla 的投資很快就開(kāi)始有了回報(bào)。2016 年,Mozilla 的一支團(tuán)隊(duì)推出了 Servo,這是一個(gè)使用 Rust 構(gòu)建的新瀏覽器引擎。第二年,另一個(gè)團(tuán)隊(duì)使用 Rust 重寫(xiě)了 Firefox 渲染 CSS 的部分,CSS 是一種用于指定網(wǎng)站外觀的語(yǔ)言,這一改變極大地提高了瀏覽器的性能。Mozilla 還使用 Rust 重寫(xiě)了處理 MP4 多媒體文件的代碼,而這些代碼一直面臨不安全、惡意代碼的風(fēng)險(xiǎn)。 Rust 的開(kāi)發(fā)者,開(kāi)始稱(chēng)呼自己為“Rustaceans”(意為 Rust 開(kāi)發(fā)者,Rust 用戶(hù),Rust 愛(ài)好者),他們很快收到了消息:其他公司會(huì)嘗試使用他們的新語(yǔ)言。 三星的程序員告訴在法國(guó) Mozilla 辦公室工作的 Klock,他們已經(jīng)開(kāi)始使用 Rust。Facebook(也就是后來(lái)的 Meta)利用 Rust 重新設(shè)計(jì)他們程序員用來(lái)管理內(nèi)部源代碼的軟件。如今為 Meta 工作的 Walton 說(shuō):“它的重要性怎么強(qiáng)調(diào)都不為過(guò)?!?/p> “寫(xiě) Rust 是一件很有意思的事情,雖然這聽(tīng)上去有些古怪,但它的語(yǔ)言太棒了。很有趣,你會(huì)有一種魔術(shù)師的感覺(jué),這是在別的程序設(shè)計(jì)語(yǔ)言里不可能出現(xiàn)的,”他說(shuō)。“我們肯定在這上面下了大本錢(qián),這可是一項(xiàng)新技術(shù)?!?/p> 有些公司發(fā)現(xiàn),Rust 緩解了他們對(duì)內(nèi)存錯(cuò)誤的恐懼;Mara Bos 使用 Rust 完全重寫(xiě)了她公司的無(wú)人機(jī)控制軟件,而該軟件最初是用 C++ 編寫(xiě)的。 其他人則發(fā)現(xiàn)了放棄垃圾收集的樂(lè)趣。在 Discord,工程師們一直對(duì) Go 中的垃圾收集器(他們用來(lái)構(gòu)建軟件關(guān)鍵部分的程序設(shè)計(jì)語(yǔ)言)會(huì)減慢速度而感到惱火。盡管 Discord 的工程師們已經(jīng)寫(xiě)得很仔細(xì),沒(méi)有垃圾需要收集,但他們的 Go 軟件還是大約每?jī)煞昼娋蜁?huì)執(zhí)行一次程序。2020 年,他們用 Rust 重寫(xiě)了這個(gè)系統(tǒng),發(fā)現(xiàn)現(xiàn)在的運(yùn)行速度快了 10 倍。 就連科技巨頭的云計(jì)算平臺(tái)亞馬遜云科技的網(wǎng)絡(luò)服務(wù)的高管和工程師,也越來(lái)越相信 Rust 可以幫助他們編寫(xiě)更安全、更快速的代碼?!癛ust 具有獨(dú)特的優(yōu)勢(shì),這是我從其他語(yǔ)言中無(wú)法獲得的。它在一種語(yǔ)言中能賦予你很多超能力?!盨hane Miller 說(shuō),他在去年離開(kāi)亞馬遜云科技之前,在該公司創(chuàng)建了一支 Rust 團(tuán)隊(duì)。 對(duì)于這個(gè)云計(jì)算巨頭來(lái)說(shuō),也許最關(guān)鍵的是,通過(guò)對(duì)基于 Rust 代碼的研究發(fā)現(xiàn),它的運(yùn)行效率非常高,其耗電量是用亞馬遜云科技常用語(yǔ)言之一 Java 編寫(xiě)的類(lèi)似程序的一半。Miller 說(shuō):“所以我可以創(chuàng)建一個(gè)數(shù)據(jù)中心,它可以運(yùn)行我今天工作負(fù)荷的兩倍?!?/p> 讓人“不安”的成功 Rust 的成功讓一些長(zhǎng)期貢獻(xiàn)者感到有些不安。隨著科技巨頭們開(kāi)始采用這種語(yǔ)言,他們對(duì) Rust 的影響也越來(lái)越大。他們有足夠的資金來(lái)支付工程師全職開(kāi)發(fā) Rust。例如,Rust 團(tuán)隊(duì)的幾個(gè)領(lǐng)導(dǎo)人都是亞馬遜和微軟的員工。 其他有價(jià)值的貢獻(xiàn)者不得不在業(yè)余時(shí)間從事他們的 Rust 工作。例如,Bos 除了經(jīng)營(yíng)她的無(wú)人機(jī)初創(chuàng)公司外,還要為華為從事 Rust 方面的合同工作,但她作為 Rust 庫(kù)團(tuán)隊(duì)負(fù)責(zé)人的角色是無(wú)償?shù)摹?/p> Bos 表示,這在開(kāi)源項(xiàng)目中是一種普遍趨勢(shì):大公司可以更多地參與進(jìn)來(lái),并且推動(dòng)項(xiàng)目來(lái)解決他們所關(guān)注的問(wèn)題,而小企業(yè)則可能不行。“這確實(shí)給了他們一些影響力,”她說(shuō),但迄今為止,還沒(méi)有一家公司做過(guò)什么令人驚恐的舉動(dòng)。” Klabnik(去年離開(kāi) Rust)也表示贊同她的觀點(diǎn),他對(duì)亞馬遜加入 Rust 提出了擔(dān)憂(yōu)。他說(shuō):“我擔(dān)心嗎?是啊。它是特別糟糕還是比其他許多地方更糟糕呢?” 2021 年,各大科技公司出資成立了一家非營(yíng)利性的 Rust 基金會(huì),以資助志愿者程序員。在頭兩年中,Miller 負(fù)責(zé)為那些希望研究 Rust 某些重要特性的程序員提供 20000 美元的資金,以及需要短期經(jīng)濟(jì)需求的貢獻(xiàn)者提供“困難”資助。 同時(shí),它還資助了托管 Rust 代碼的服務(wù)器和一家科技公司,保證它們 24 小時(shí)不間斷地運(yùn)行。Miller 說(shuō),在傳統(tǒng)的開(kāi)源模式下,這項(xiàng)工作以前是由“兩個(gè)志愿者完成的,他們基本上 50% 的時(shí)間都是隨叫隨到,其中一個(gè)是意大利的學(xué)生?!?/p> 這門(mén)語(yǔ)言就這么不可思議地迅速成長(zhǎng)起來(lái)。如果說(shuō) Rust 是在 2006 年誕生的,那么它現(xiàn)在正走出青春期、步入成熟期。 汽車(chē)公司正在采用 Rust 來(lái)構(gòu)建運(yùn)行汽車(chē)的關(guān)鍵代碼;航空航天公司也在采用 Rust。Dropbox 的 Timmerman 預(yù)計(jì),“它將會(huì)得到廣泛的應(yīng)用?!蔽④浉吖苌踔凉_(kāi)表示,許多其他科技公司可能正在閉門(mén)思考的問(wèn)題是:微軟將會(huì)更多地利用 Rust 來(lái)編寫(xiě)新的代碼,而 C 和 C++ 則會(huì)變得越來(lái)越少。最后可能永遠(yuǎn)都不會(huì)有。 所有那些已經(jīng)在使用的 C 和 C++ 代碼都不會(huì)消失,它們將會(huì)在未來(lái)的數(shù)十年中繼續(xù)得到應(yīng)用。但如果 Rust 成為編寫(xiě)需要快速和裸機(jī)的新代碼的常用方法,我們就會(huì)開(kāi)始注意到,慢慢地,我們的軟件環(huán)境會(huì)越來(lái)越可靠,不會(huì)再像以前那樣不穩(wěn)定、不安全。 沒(méi)有人比 Hoare 更驚訝了?!按蠖鄶?shù)語(yǔ)言,”他說(shuō),“都是半途夭折了?!?/p> 原文發(fā)表于 The TechNocrat,經(jīng)原作者授權(quán),InfoQ 翻譯并分享。 原文鏈接: https://www./2023/02/14/1067869/rust-worlds-fastest-growing-programming-language
|
|
來(lái)自: 天選小丑 > 《計(jì)算機(jī)與編程》