為什么學(xué) Rust 及相關(guān)學(xué)習(xí)資料推薦
閱讀本文大概需要 5 分鐘。
大家好,我是站長 polarisxu。
春節(jié)結(jié)束,我的 Rust 之旅才剛剛開始。經(jīng)過春節(jié)期間的學(xué)習(xí),發(fā)現(xiàn) Rust 真的是有點復(fù)雜,好吧,我覺得很復(fù)雜。如果你跟我一樣,決定學(xué)習(xí) Rust,那一定要有心理準(zhǔn)備,要啃一塊硬骨頭,畢竟跟 Go 語言比起來,復(fù)雜太多了。
01 為什么要學(xué) Rust 呢?
看看 Google 上的結(jié)果:

愛總是能找到一堆理由,不愛亦如此。比如也有反對你學(xué)習(xí) Rust 的,比如這篇:《我為什么反對使用 Rust?》[1]。
所以為什么學(xué),為什么不學(xué),由你自己定。但有兩個事實供參考。
1、StackOverflow 調(diào)查中,連續(xù) 5 次奪得最受程序員喜愛的語言評比第一名。
比如 2020 年的調(diào)查結(jié)果,65,000 名參與調(diào)查程序員中,最愛 Rust 的竟然占比高達(dá) 86.1%,遠(yuǎn)超第二名。咋一看很奇怪,其實這里有一個誤區(qū),問的問題這樣的:多少開發(fā)人員正在使用該語言或技術(shù)進(jìn)行開發(fā),并且表示有興趣繼續(xù)開發(fā)該語言或技術(shù)。也就是說,使用 Rust 的開發(fā)這種,有 86.1% 的人有興趣繼續(xù)使用。實際上,這個調(diào)查中,一共只有 5% 的人使用 Rust。

我的理解是,那些入門 Rust 的人或喜歡 Rust 的人大概率繼續(xù)喜歡(入門了就大概率成為了忠實粉,是不是不想白學(xué)。哈哈哈哈,畢竟辛苦不容易。玩笑下~),但讓更多人入門 Rust 是個問題。。。
StackOverflow 專門做了一個調(diào)查,為什么 Rust 用戶喜歡 Rust,這里直接放上譯文:https://rustcc.cn/article?id=3ce10a05-9506-475d-8c8a-3ad74130ad83。
2、Microsoft、Google 和 AWS 等似乎都在挺 Rust。
比如 微軟組建 Rust 開發(fā)人員團(tuán)隊[2]、加大支持力度,AWS 計劃招聘更多 Rust 開發(fā)人員[3]、微軟正用 Rust 重寫 Windows 組件[4]、用 Rust 重構(gòu)核心開源軟件吧,谷歌愿意給你錢[5] 等。
在 Rust 的第一印象就提到,Rust 基金會成立,這幾個都是基金會成員,國內(nèi)的華為也是。
從這些信息看出,這些公司都希望使用 Rust 替代 C++。所以,如果你掌握了 C++,Rust 對你來說是不錯的選擇,而且入門也會更容易。
至于我個人來說,為什么學(xué)習(xí) Rust,主要有如下考慮:
應(yīng)該嘗試學(xué)習(xí)不同的語言,而且 Rust 是現(xiàn)代的編程語言,有很多常規(guī)語言中沒有的東西; 程序員修煉之道中有個建議,就是想要抵抗技術(shù)過時的風(fēng)險,就得每年學(xué)一門語言; 想通過對 Rust 的學(xué)習(xí),和 Go 對比著來梳理、輸出,加深對兩門語言的理解;
所以,我學(xué)習(xí) Rust 并沒有想過將它用在工作中(但實際會不會用,誰知道呢),完全是出于好奇,讓自己多掌握一門技能,提升自己。
02 相關(guān)學(xué)習(xí)資料推薦
我自己學(xué)習(xí)才幾天,但連續(xù)看了一些資料,這里列舉一些:
1、官方文檔
官方有一本 The Rust Programming Language,國內(nèi)也有人翻譯了,免費(fèi)閱讀版本:https://kaisery.github.io/trpl-zh-cn/,因為官方這本書就是可以免費(fèi)閱讀的,雖然也出版了。官方出版了,國內(nèi)出版社也引進(jìn)了,這就是《Rust 權(quán)威指南》。
我最開始就是看的這本書,但看了一大半有點看不下去了。我個人感覺這本書不太適合入門。據(jù)說第一版本更是不適合,現(xiàn)在是改版之后的,稍微好些。
2、Rust 編程之道
這是國內(nèi)張漢東老師出的,我初略看完了。為什么是初略?有些章節(jié)仔細(xì)認(rèn)真閱讀了,有些略過,因為內(nèi)容太多了。但這本書看下來,會比官方的 “Rust 圣經(jīng)” 更易看懂。借用書中前言的一段話:
Rust 官方雖然提供了 Rust Book(即上面說的圣經(jīng)),但是內(nèi)容的組織非常不友好,基本就是對知識點的羅列,系統(tǒng)性比較差。后來官方也意識到了這個問題,推出了第 2 版的Rust Book,內(nèi)容組織方面改善了很多,對學(xué)習(xí)者也非常友好,但系統(tǒng)性還是差了點。后來又看了國內(nèi) Rust 社區(qū)組織群友們合著的 Rust Primer,以及國外的Programming Rust,我才對 Rust 建立了基本的認(rèn)知體系。
3、Rust Primer
給初學(xué)者的 Rust 中文教程。這是國內(nèi) Rust 社區(qū)組織編寫的,在線閱讀地址:https://rustcc.gitbooks.io/rustprimer/content/。這本書我還沒有看。
4、Programming Rust
這是 O’REILLY 出版的一本書,圖靈社區(qū)引進(jìn)翻譯了,但從評論看,似乎翻譯的不好:https://www.ituring.com.cn/book/2101。挺奇怪的,譯者感覺主要涉及的領(lǐng)域是 Web 前端,不知道為什么會翻譯這本書。從評論看,如果要看這本書,似乎英文版更合適。當(dāng)然我自己沒看過,完全從大家的評論分析的。
5、Mastering Rust
這本書目前已經(jīng)更新第二版了,而且中文版也出版了,即:《精通 Rust 第二版》。目前我還在看這本,看了一半,整體感覺寫的挺好的。但翻譯中有一些錯誤(在所難免,整體還是可以)。所以我建議大家看該書時,遇到一些名詞或感覺不對的,和英文原版對照著確認(rèn)下。
6、Rust Programming Cookbook
Cookbook 系列,中文版《Rust 語言編程實戰(zhàn)》2021 年剛上線售賣。
7、深入淺出 Rust
這也是國人寫的一本書,沒有看過,不做評論。
此外,國外還有其他一些 Rust 相關(guān)的圖書,比如 Rust 函數(shù)式編程、Rust 構(gòu)建微服務(wù)系統(tǒng)、Rust 進(jìn)行 WebAssembly 編程、用 Rust 實現(xiàn)數(shù)據(jù)結(jié)構(gòu)和算法、Rust 并發(fā)編程、Rust 機(jī)器學(xué)習(xí)實踐、Rust 系統(tǒng)編程等等,可以在?Amazon[6]?上查到。另外 《Rust In Action》也快出版了。
可見,Rust 相關(guān)的資料這兩年還是出了不少。
因為 Rust 內(nèi)容很多,入門不易,容易勸退,比較建議大家從中文資料入手。所以,我個人推薦看以下圖書:
精通 Rust 第二版,對照著英文看。英文版可以關(guān)注公眾號?polarisxu?,回復(fù)?rust01?獲??; Rust 編程之道 Rust Primer
可以選擇一本,然后遇到不明白的,可以查其他的,結(jié)合者學(xué)習(xí)。同時,官方的文檔應(yīng)該查閱,比如標(biāo)準(zhǔn)庫文檔。
此外,有一個群友推薦了一個 B 站上的 Rust 視頻教程:https://www.bilibili.com/video/BV1hp4y1k7SV,喜歡視頻的朋友可以看看。如果你有好的資料推薦,歡迎留言,也歡迎對以上資料做評價。
是的,我創(chuàng)建了一個 Rust 的微信群(目前無法掃碼進(jìn)群了),用來學(xué)習(xí)&吐槽 Rust,想進(jìn)群的加我微信:gopherstudio,備注 rust。
參考資料
《我為什么反對使用 Rust?》: https://www.infoq.cn/article/65tlwzqz2capvldohgix
[2]微軟組建 Rust 開發(fā)人員團(tuán)隊: https://www.oschina.net/news/128818/microsoft-rust-team
[3]加大支持力度,AWS 計劃招聘更多 Rust 開發(fā)人員: https://www.oschina.net/news/121772/amazon-software-engineer-rust
[4]微軟正用 Rust 重寫 Windows 組件: https://www.infoq.cn/article/mqz2zrqt9pyu0ojoavra
[5]用 Rust 重構(gòu)核心開源軟件吧,谷歌愿意給你錢: https://www.infoq.cn/article/uup3gzeGpAtd7KIS8pzf
[6]Amazon: https://www.amazon.com/s?k=rust&i=stripbooks&rh=n%3A283155%2Cn%3A5&dc&qid=1613572146&rnid=283155&ref=sr_nr_n_4
歡迎關(guān)注我
