關於 Rust

會知道 Rust 是因為之前公司團隊的工作是跟瀏覽器引擎 (Webkit/Blink) 的優化有關,那時只知道 Mozilla 正在用 Rust 這個新的程式語言實驗性地開發 Servo 引擎。同時間 Go 已經到達 1.0 的里程碑,同時有著優異的編譯及執行效能,很快地 Go 就變成我個人主要使用的程式語言,工作上需要的一些小工具也都是用 Go 來實現。

開始對 Rust 重新關注大概是它在 2015 年釋放 1.0 版本後,那時只稍微了解一下語法及主要的語言特性,當時覺得這程式語言的學習曲線蠻陡峭的,必須全面地對所有的語言特性有一定了解後才能駕馭它。那時 Go 用的正是順手,所以就沒什麼動力把 Rust 完整學起來。

去年開始工作上需要了解 Fuchsia OS 的實作,赫然發現裡面蠻多系統服務都是用 Rust 開發的,數量上甚至比 Google 自家的 Go 還多,這也是我決定多投入時間學習 Rust 的轉捩點。

學習資源

我主要使用下列幾本書來學習 Rust:

  • 深入浅出 Rust 這本書的電子版: 它的特色是側重於解釋 Rust 主要概念的設計思想,而不只是單純語法或用法的說明;且因為是中文的緣故,讀起來速度還是比較快,比較像是 Rust 的內功心法入門。
  • 30 天深入淺出 Rust 系列 則是以淺顯易懂的範例把 Rust 主要的特色講解了一遍,內容適合對於想要快速地對 Rust 有個全面性的概觀的人。
  • 對 Rust 有了基本的了解後,A Gentle Introduction to Rust 則是適合有 C/C++ 經驗的開發者來學習如何寫 idiomatic Rust。

至於最經典的 The Rust Programming Language 呢? 我只把了一些我覺得重要的章節看完,其他剩下的就直接動手實作,遇到有細節不清楚或是已經忘記時再花時間來看。

其他資源

上面主要是比較完整的 Rust 學習資源,下一篇再分享一些我覺得不錯的 blog post,通常是針對某個特定主題或進階功能的解釋或教學。