你是否也想學習 Rust 語言,卻不知到從何學起?
Rust 繁中簡學! 系列將紀錄我自學 Rust 語言的過程並分享相關的學習資源,希望能幫到大家~
最近想利用暑假期間自學 Rust,但網路上找不到喜歡的繁體中文資源,所以決定自己來翻譯,然後在這裡分享我的學習歷程。
本系列主頁面:Rust繁中簡學!
Rust:高效能與安全兼具的程式設計新星
首先我們來談談 Rust 語言是什麼東東。
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 據說是一個非常受歡迎的學習資源,專門為學習 Rust 程式語言的新手設計。裡面包含一系列的小型練習,讓學習者透過實際操作逐步掌握 Rust 的基礎知識和語法。
Rustlings 的特點
逐步學習
Rustlings 的練習題由淺入深,讓學習者可以逐步掌握 Rust 的核心概念。
實作練習
每個單元都有實際的程式碼練習,幫助學習者在實作中學習,增加實戰經驗。
即時回饋
Rustlings 會在每個練習完成後提供即時回饋,幫助學習者及時修正錯誤,深化理解。
社群支持
Rustlings 擁有活躍的社群,學習者可以在遇到問題時尋求幫助,也可以與其他學習者交流心得。
自己翻譯 Rustlings
然而,Rustlings 本身是英文的,網路上的中文翻譯也都是簡體。我一直認為,好的學習資源(尤其是程式設計相關的教材或甚至是專案的說明),不應該獨尊英文,否則對於非英語母語使用者非常不公平(就連數位發展部在今年啟用的「公共程式平台」上面,都有不少只提供英文 README 的專案🙄)。因此,我決定自己來翻譯。
目前已經翻譯完成,網址:https://github.com/TimLai666/rustlings-zh-TW
由於我自己也還沒學過 Rust,並且在翻譯過程中大量使用 ChatGPT 幫忙,如果有翻得不好、遇到 bug 或誤用中國用語,歡迎在文章下面留言指正🙏
下一篇文章,我將正式開始學習 Rust,並分享我的學習過程和心得。我們一起加油吧!
參考資料
- Rust – 維基百科 https://zh.wikipedia.org/zh-tw/Rust
- Rust 程式設計語言(官網) https://www.rust-lang.org/zh-TW
- Google開發工具工程總監:Rust 開發者的生產力是 C++ 的兩倍 https://www.techbang.com/posts/114193-google-rust-developers-are-twice-as-productive-as-c
- Android記憶體安全漏洞數量大幅下降,Rust程式碼比例上升成關鍵 https://www.ithome.com.tw/news/154539