我是一个相当新的 Rust 皈依者,大约在 2020 年 4 月底开始学习它。但是,像许多皈依者一样,我是一个热情的布道者。坦白说,我也不是一个非常优秀的 Rustacean,因为我的编码风格不是很好,而且我写的 Rust 代码也不是特别地道。我怀疑这部分是因为我从未真正完成 Rust 的学习就投入并编写了相当多的代码(其中一些代码正在反噬我),部分原因是因为我只是一个不太优秀的程序员。
但我热爱 Rust,你也应该如此。它很友好——比 C 或 C++ 更友好;它为底层系统任务做好了准备——比 Python 更胜任;它结构良好——比 Perl 更胜一筹;而且,最棒的是,它是完全开源的,从设计层面到最终实现——远胜于 Java 等。
尽管我缺乏专业知识,但我注意到一些我认为许多 Rust 爱好者和程序员都共有的现象。如果你对以下五个迹象(第一个迹象是由最近一些令人兴奋的新闻引发的)回答“是”,那么你可能也是一名 Rust 程序员。
1. “基金会”这个词让你兴奋
对于 Rust 程序员来说,“基金会”这个词将不再首先与艾萨克·阿西莫夫联系在一起,而是与新成立的 Rust 基金会 联系在一起。微软、华为、谷歌、AWS 和 Mozilla 正在为该基金会提供董事(并可能提供大部分初始资金),该基金会将负责该语言的各个方面,“预示着 Rust 作为企业生产就绪技术的到来”,根据临时执行董事 Ashley Williams 的说法。(顺便提一下,很高兴看到一位女性领导如此重要的行业倡议。)
该基金会似乎致力于维护 Rust 的理念,并确保每个人都有机会参与其中。在许多方面,Rust 都是开源项目的典范。并非它很完美(无论是语言还是社区),而是似乎有足够多的爱好者致力于维护社区的高度参与、低门槛方法,我认为这是开源的核心。我强烈欢迎这一举措,我认为这只会帮助在未来几年和几个月内促进 Rust 的采用和成熟。
2. 你对新闻推送中关于 Rust(游戏)的引用感到沮丧
还有另一件与计算机相关的东西也叫“Rust”,它是一款“多人在线生存视频游戏”。它比 Rust 语言更新(于 2013 年宣布,2018 年发布),但我曾经搜索 Rust 相关的周边产品,并犯了一个错误,用那个名字搜索了游戏。互联网就是这样,这意味着我的新闻推送现在感染了这个另类的 Rust 怪兽,我现在会收到他们粉丝群和公关人员的随机更新。这有点令人恼火,但我非常肯定在 Rust(语言)社区中我并不孤单。我强烈建议,如果你确实想了解更多关于这个计算领域后起之秀的信息,请使用一个提高隐私性(我拒绝说“保护隐私”)的 开源浏览器 来进行你的研究。
3. “unsafe”这个词让你惊恐地退缩
Rust(再次强调是语言)在帮助你做正确的事情™方面做得非常出色,尤其是在内存安全方面,这是 C 和 C++ 中的一个主要问题(不是因为不可能,而是因为要始终如一地做好它真的很难)。Dave Herman 在 2016 年写了一篇关于为什么安全是 Rust 语言如此积极属性的文章:安全是 Rust 的焰火。安全(内存安全、类型安全)可能并不光鲜亮丽,但当你编写更多 Rust 代码时,你会习惯并感激它——特别是如果你参与任何系统编程,而这通常是 Rust 的优势所在。
现在,Rust 并不会阻止你做错误的事情™,但当你希望超出安全范围时,它会让你做出有意识的决定,让你使用 unsafe
关键字。这不仅对你有好处,因为它(希望)会让你非常非常仔细地思考你正在将什么放入任何使用它的代码块中;这对任何阅读你代码的人也有好处。这是一个触发词,会让任何心智健全的 Rustacean 至少轻微地打个寒颤,在椅子上坐直,并思考:“嗯,这里发生了什么?我需要特别注意。” 如果你幸运的话,阅读你代码的人可能会想到重写它的方法,使其确实利用 Rust 的安全特性,或者至少减少提交和发布的 unsafe 代码量。
4. 你想知道为什么没有 ?;
或 {:?}
或 ::<>
的表情符号
每个人都喜欢(或讨厌)turbofish(::<>
),但在 Rust 代码中你经常会看到其他语义结构。特别是 {:?}
(用于字符串格式化)和 ?;
(?
是一种将错误向上层调用堆栈传播的方式,而 ;
结束行/块,所以你经常看到它们在一起)。它们在 Rust 代码中非常常见,以至于你只需在学习的过程中解析它们,而且它们也非常有用,以至于我有时想知道为什么它们没有进入正常的对话,至少是以表情符号的形式。可能还有其他的。你的建议是什么?
5. Clippy 是你的朋友(而不是动画回形针)
Clippy,微软的动画回形针,是 Office 用户很快学会讨厌的“功能”,并且已成为许多 表情包 的起点。另一方面,cargo clippy
是 令人惊叹的 Cargo 命令 之一,应该成为每个 Rust 程序员工具包的一部分。Clippy 是一个语言检查器,可以帮助改进你的代码,使其更简洁、更整洁、更易读、更符合语言习惯,并且通常在与同事或世界其他地方分享时不会那么尴尬。Cargo 可以说已经恢复了“Clippy”这个名字的声誉,虽然我不会选择用它来给我的孩子命名,但每当我在网络上看到这个词时,我不再感到不安。
本文最初发表在 Alice, Eve, and Bob 上,并经作者许可转载。
评论已关闭。