Rust具有媲美C/C++執行速度,但也因為豐富的語言特性與規則,也常讓許多初學者卻步。
在這個講座裡,我們會將rust和主流的高階語言做比較,讓聽者在有對比的狀況下理解如何使用rust裡好用的功能處理問題,同時順帶了解rust在語法設計上的一些Trade off與擅長的地方。
講題涉及議題:
- Rust裡的Collection與使用
- Option類型與空值處理
- Result類型與錯誤處理
幾個Rust的知名專案:
- Deno: javascript與typescript的runtime,同時也使用rust的tokio作為nodejs libuv的替代品。
- Ripgrep: 用於command line上的高效搜尋工具,和使用golang的fzf工具合用超級方便。
- Tokio: 基於event-driven與non-blocking io的跨平台非同步程式runtime。口號是
Built by the community, for the community
, 同時也有各大軟體公司在支撐著該專案。
(看了tokio官網首頁的贊助公司以後就可以想像得到為什麼當初NodeJs之父Ryan Dahl頭也不回的拋棄了libuv改用tokio與rust開發開源專案Deno了QAQ)。
Rust的幾個使用場景
- 支援直接編譯成Webassembly,提高前端程式的執行效能,wasm也可用於伺服器被nodejs與deno直接執行。
- 零成本的C ffi,被用於開發系統級別與底層的語言 [1]。
- 高度節省記憶體的設計與媲美C/C++的執行速度,適用於高性能與吞吐量大的伺服器。
Reference:
[1] Rust-Once-Run-Everywhere
https://blog.rust-lang.org/2015/04/24/Rust-Once-Run-Everywhere.html
About Wayne Tsai
大家好,我是韋恩。現職為前端工程師,同時也在工作上開發桌面應用程式。
因為喜歡分享的關係,大家可以在一些技術分享場合上看到我。
近期的感想是入技術坑與填坑是個學問,工作、學習與下班後的平衡也是個學問。在沒有產生剝削感的狀況下持續對自己喜歡的主題付出,路才容易走得長久與健康。
期許自己在對感興趣的課題花上時間後,能不時時刻刻用自己那把覺得專業的尺來衡量別人,認為對方非得如此非不如此。保持普通人與正常人的感覺,在生活與日常中以普通與有趣的方式跟朋友相處。