Linux中國

你可能是 Rust 程序員的五個跡象

我是最近才 皈依 Rust 的,我大約在是 2020 年 4 月底開始學習的。但是,像許多皈依者一樣,我還是一個熱情的佈道者。說實話,我也不是一個很好的 Rust 人,因為我的編碼風格不是很好,我寫的也不是特別符合 Rust 習慣。我猜想這一方面是因為我在寫大量代碼之前還沒有沒有真正學完 Rust(其中一些代碼又困擾了我),另一方面是因為我並不是那麼優秀的程序員。

但我喜歡 Rust,你也應該喜歡吧。它很友好,比 C 或 C++ 更友好;它為低級系統任務做好了準備,這比 Python 做的更好;而且結構良好,這要超過 Perl;而且,最重要的是,從設計層面開始,它就是完全開源的,這要比 Java 那些語言好得多。

儘管我缺乏專業知識,但我注意到了一些我認為是許多 Rust 愛好者和程序員的共同點。如果你對以下五個跡象點頭(其中第一個跡象是由最近的一些令人興奮的新聞引發的),那麼你也可能是一個 Rust 程序員。

1、「基金會」一詞會使你興奮

對於 Rust 程序員來說,「基金會」一詞將不再與 艾薩克·阿西莫夫 Isaac Asimov 關聯在一起,而是與新成立的 Rust 基金會 關聯。微軟、華為、谷歌、AWS 和Mozilla 為該基金會提供了董事(大概也提供了大部分初始資金),該基金會將負責該語言的各個方面,「預示著 Rust 成為企業生產級技術的到來」,根據臨時執行董事 Ashley Williams 說。(順便說一句,很高興看到一位女士領導這樣一項重大的行業計劃。)

該基金會似乎致力於維護 Rust 的理念,並確保每個人都有參與的機會。在許多方面,Rust 都是開源項目的典型示例。並不是說它是完美的(無論是語言還是社區),而是因為似乎有足夠的愛好者致力於維護高參與度、低門檻的社區方式,我認為這是許多開源項目的核心。我強烈歡迎此舉,我認為這隻會幫助促進 Rust 在未來數年和數月內的採用和成熟。

2、你會因為新聞源中提到 Rust 遊戲而感到沮喪

還有一款和電腦有關的東西,也叫做「Rust」,它是一款「只限多玩家生存類的電子遊戲」。它比 Rust 這個語言更新一些(2013 年宣布,2018 年發布),但我曾經在搜索 Rust 相關的內容時,犯了一個錯誤,用這個名字搜索了遊戲。互聯網路就是這樣的,這意味著我的新聞源現在被這個另類的 Rust 野獸感染了,我現在會從它的影迷和公關人員那裡隨機得到一些更新消息。這是個低調的煩惱,但我很確定在 Rust(語言)社區中並不是就我一個人這樣。我強烈建議,如果你確實想了解更多關於這個計算世界的後起之秀的信息,你可以使用一個提高隱私(我拒絕說 "保護隱私")的 開源瀏覽器 來進行研究。

3、「不安全」這個詞會讓你感到恐懼。

Rust(語言,再次強調)在幫助你做正確的事情™方面做得非常好,當然,在內存安全方面,這是 C 和 C++ 內部的主要關注點(不是因為不可能做到,而是因為真的很難持續正確)。Dave Herman 在 2016 年寫了一篇文章《Safety is Rust's fireflower》,講述了為什麼安全是 Rust 語言的一個積極屬性。安全性(內存、類型安全)可能並不賞心悅目,但隨著你寫的 Rust 越多,你就會習慣並感激它,尤其是當你參與任何系統編程時,這也是 Rust 經常擅長的地方。

現在,Rust 並不能阻止你做錯誤的事情™,但它確實通過讓你使用 unsafe 關鍵字,讓你在希望超出安全邊界的時候做出一個明智的決定。這不僅對你有好處,因為它(希望)會讓你非常、非常仔細地思考你在任何使用它的代碼塊中放入了什麼;它對任何閱讀你的代碼的人也有好處,這是一個觸發詞,它能讓任何不太清醒的 Rust 人至少可以稍微打起精神,在椅子上坐直,然後想:「嗯,這裡發生了什麼?我需要特別注意。」如果幸運的話,讀你代碼的人也許能想到重寫它的方法,使它利用到 Rust 的安全特性,或者至少減少提交和發布的不安全代碼的數量。

4、你想知道為什麼沒有 ?;{:?}::<> 這樣的表情符號

人們喜歡(或討厭)渦輪魚(::<>),但在 Rust 代碼中你經常還會看到其他的語義結構。特別是 {:?} (用於字元串格式化)和 ?;? 是向調用棧傳播錯誤的一種方式,; 則是行/塊的結束符,所以你經常會看到它們在一起)。它們在 Rust 代碼中很常見,你只需邊走邊學,邊走邊解析,而且它們也很有用,我有時會想,為什麼它們沒有被納入到正常對話中,至少可以作為表情符號。可能還有其他的。你有什麼建議?

5、Clippy 是你的朋友(而不是一個動畫回形針)

微軟的動畫回形針 Clippy 可能是 Office 用戶很快就覺得討厭的「功能」,並成為許多 模因 的起點。另一方面,cargo clippy 是那些 很棒的 Cargo 命令 之一,應該成為每個 Rust 程序員工具箱的一部分。Clippy 是一個語言 整潔器 Linter ,它可以幫助改進你的代碼,使它更乾淨、更整潔、更易讀、更慣用,讓你與同事或其他人分享 Rust 代碼時,不會感到尷尬。Cargo 可以說是讓 「Clippy」 這個名字恢復了聲譽,雖然我不會選擇給我的孩子起這個名字,但現在每當我在網路上遇到這個詞的時候,我不會再有一種不安的感覺。

這篇文章最初發表在 [Alice, Eve, and Bob] 9上,經作者許可轉載。

via: https://opensource.com/article/21/3/rust-programmer

作者:Mike Bursell 選題:lujun9972 譯者:wxy 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國