你是否也想學習 Rust 語言,卻不知到從何學起?
Rust 繁中簡學! 系列將紀錄我自學 Rust 語言的過程並分享相關的學習資源,希望能幫到大家~

最近想利用暑假期間自學 Rust,但網路上找不到喜歡的繁體中文資源,所以決定自己來翻譯,然後在這裡分享我的學習歷程。

本系列主頁面:Rust繁中簡學!

Rust:高效能與安全兼具的程式設計新星

首先我們來談談 Rust 語言是什麼東東。

Ferris the crab – Rust
作者:VoldieCode
採用「創用CC 姓名標示-非商業性 3.0 國際 (CC BY-NC 3.0)」授權條款授權

Rust 程式語言的起源最早可以追溯到 Mozilla 員工 Graydon Hoare 在 2006 年入職 Mozilla 前的個人專案。
2009 年,Hoare 加入 Mozilla,Mozilla 便開始贊助 Rust 專案,並於 2010 年首次公開。Rust 的編譯器原始碼最初是用 OCaml 語言編寫的,後來轉移到 Rust 語言進行自我編譯,稱為「rustc」,於 2011 年完成。Rust 1.0(Rust 第一個穩定版本)於 2015 年 5 月 15 日發布。

Rust 的開發過程是完全公開的,並且鼓勵社群參與和回饋。這種開放的開發模式和社群驅動的方法,使得 Rust 能夠快速發展並改進其語言特性。

特色

速度與記憶體效率

Rust 以其驚人的速度和記憶體效率而聞名,不需要執行時函式庫或垃圾回收機制,適合高效能服務和嵌入式裝置。

安全性

Rust 的設計準則為「安全、並行、實用」,支援多種程式設計風格,並提供高層次抽象,同時保持記憶體安全。

易於散布

支援單獨靜態二進制檔案的編譯,便於分發。

並行處理

Rust 可充分利用現代多核心電腦的能力,是一種優秀的並行處理語言。

目前發展

Rust 程式語言以它的高性能、可靠性和生產力著稱。它沒有運行時或垃圾收集器,因此非常適合高性能要求的服務和嵌入式設備,並且可以輕鬆與其他語言集成。Rust 的類型系統和所有權模型保證了記憶體和線程的安全,許多錯誤可以在編譯時被消除。

自 2018 年以來,Rust 社群專注於改善命令行工具、WebAssembly(一種新的網頁前端技術,可以將 Rust 程式碼編譯後在瀏覽器中執行)、網絡服務和嵌入式開發等領域的開發體驗。許多知名公司如 Firefox、Dropbox 和 Cloudflare 都在使用Rust 開發快速、低資源消耗且跨平台的解決方案。

Rust 的工具鏈非常強大,包含集成的包管理器和構建工具、智能多編輯器支援、自動完成和類型檢查、自動格式化等功能。Rust 社群對於貢獻者非常友好,無論是業餘愛好者還是專業人士,都歡迎大家參與貢獻程式碼,使 Rust 變得更好。

微軟 Azure 首席技術長 Mark Russinovich 在 2022 年 9 月建議新專案使用 Rust 取代 C / C++。Google 則透過將 Go 程式碼轉寫成 Rust 取得顯著的成效。

「遷移過程所需團隊規模和時間幾乎與 Go 開發相當,並沒有降低效率。更重要的是,記憶體使用率降低了,漏洞率也隨之減少,程式碼正確性得到提升。」

此外,Google 更從 Android 12 開始就在 Android 支援 Rust 程式語言,作為 C/C++ 記憶體安全替代方案。使得 Android 的記憶體漏洞年度總數大幅下降。

今年初(2024),Google 更大手筆向 Rust 基金會捐贈 100 萬美元,資助 C++ 與 Rust 的互通性計畫。希望讓 C++ 程式碼更容易轉移到 Rust ,使兩種語言可無縫整合。

總體來說,Rust 在軟體開發的多個領域都展現出了巨大的潛力和實際應用價值,也受到大公司的青睞,未來發展前景十分看好。

Rustlings

那麼回到正題,我們一般人要如何學習 Rust 呢?
你當然可以按部就班地把 官方文檔 讀完(它甚至還有非官方的 中文翻譯),但我個人覺得字太多讀不下去😂,所以在詢問 ChatGPT 之後得知了 Rustlings 這個 GitHub 倉庫。

Rustlings 的 GitHub 頁面

Rustlings 據說是一個非常受歡迎的學習資源,專門為學習 Rust 程式語言的新手設計。裡面包含一系列的小型練習,讓學習者透過實際操作逐步掌握 Rust 的基礎知識和語法。

Rustlings 的特點

逐步學習

Rustlings 的練習題由淺入深,讓學習者可以逐步掌握 Rust 的核心概念。

實作練習

每個單元都有實際的程式碼練習,幫助學習者在實作中學習,增加實戰經驗。

即時回饋

Rustlings 會在每個練習完成後提供即時回饋,幫助學習者及時修正錯誤,深化理解。

社群支持

Rustlings 擁有活躍的社群,學習者可以在遇到問題時尋求幫助,也可以與其他學習者交流心得。

自己翻譯 Rustlings

然而,Rustlings 本身是英文的,網路上的中文翻譯也都是簡體。我一直認為,好的學習資源(尤其是程式設計相關的教材或甚至是專案的說明),不應該獨尊英文,否則對於非英語母語使用者非常不公平(就連數位發展部在今年啟用的「公共程式平台」上面,都有不少只提供英文 README 的專案🙄)。因此,我決定自己來翻譯。

本人自己翻譯的繁體中文版 Rustlings

目前已經翻譯完成,網址:https://github.com/TimLai666/rustlings-zh-TW

由於我自己也還沒學過 Rust,並且在翻譯過程中大量使用 ChatGPT 幫忙,如果有翻得不好、遇到 bug 或誤用中國用語,歡迎在文章下面留言指正🙏

下一篇文章,我將正式開始學習 Rust,並分享我的學習過程和心得。我們一起加油吧!

參考資料

Similar Posts

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *