喜欢/讨厌 Rust 的 7 个理由


InfoWorld 梳理了一份致使开发人员喜欢或讨厌使用 Rust 编程的原因清单,分别列出了 7 条内容。具体如下:

1、喜欢:Rust 解决了规模和并发问题

随着开发人员解决规模和并发性问题(即需要同时处理来自多个不同来源的输入),软件变得越来越复杂。许多人认为 Rust 是构建适合当今架构的工具的最佳语言。

Web 浏览器是需要大规模可扩展性的应用程序的一个很好的例子,因此 Rust 是由开发 Firefox 的非盈利公司 Mozilla 创建的也就不足为奇。Mozilla 的开发人员研究了他们在代码中遇到的问题并寻求更好的解决方案。最后,他们想出了 Rust。

讨厌:Rust 的并发模型太复杂了

虽然多线程系统越来越流行,但对于很多开发人员来说这并不是真正需要的;Scientific programmers 倾向于编写单线程函数。Web 开发人员可以编写 PHP 代码,它提供了一种简单的声明式方法来创建网站。Serverless programmers 只需编写一个函数,然后将繁重的工作留给其他人。需要创建更复杂的 Web 应用程序的开发人员则可以转向 Node.js,它提供了另一种处理多线程应用的策略。Node 的事件驱动模型与基于 Promise 的代码相结合,也可以产生简单而优雅的结果。

所有这一切都意味着 Rust 的多线程编程模型提供了比许多程序员所需的更复杂的功能。一些人可以不计较这些额外的东西并对 Rust 保持热爱,但有些程序员宁愿不去处理这些复杂的东西。“他们只是不需要它”。

2、喜欢:Rust 是一门现代语言

现如今许多编程语言的设计都专注于在创建功能性语言,以引导开发人员编写更容易分析的软件,Rust 也是如此。许多开发人员喜欢 Rust 的 logical、functional syntax,它鼓励将代码结构化为一系列嵌套函数调用。

与此同时,Rust 的创造者想要构建一些东西来处理保持物联网正常运行所需的 bit-banging、low-level 编程。Rust 为希望用现代风格解决这些非常现实的挑战的程序员提供了正确的组合。

讨厌:它有一个陡峭的学习曲线

在某些方面,学习 Rust 是一个忘掉你从编程生涯开始就可能遵循的概念和技术的过程。例如,学习 Rust 需要忘掉 JavaScript 和 Java 等旧语言所要求的 scope 和 ownership 的概念。

如果你想利用 Rust 的优势,则必须愿意放弃一些可能导致错误的已熟悉的功能。还有些人认为,Rust 的语言语法也很复杂。除了大括号和圆括号,还有方括号、竖线和大于号;有时候甚至还有双冒号。

构建复杂的多线程工具的 Rust 开发者可能会认为 Rust 的语法复杂性是一种值得的折衷,熟悉功能流的真正爱好者甚至可能会喜欢它。但其他人的感受却不尽相同,学习 Rust 的所有语义规则并不适合 casual user。 

3、喜欢:你可以告诉 Rust 编译器该做什么

一些开发人员将 Rust 所需的所有额外细节和模板视为优势。它让他们可以 inject hints,使编译器更容易找出正在发生的事情并捕获任何潜在的错误。华丽的代码为开发人员提供了更好的机会来完全指定应该发生的事情,此举有助于避免编译器错误。Rust 通过注入有关代码应该如何工作的提示来邀请开发人员编写更好、更快的代码。

讨厌:谁想告诉编译器该做什么啊?

有些开发者只是想要一种语言,他们可以用它来完成运行时不会崩溃的循环、可以处理后台工作。因此如果编译器有时生成的代码比较慢,或者可能有点错误,无伤大雅。许多工作并没有那么复杂,而且调试起来也不难。相较 Rust 编译器的使用,配置更多的硬件反而要更轻松一点。

4、喜欢:Rust 具有很好的向后兼容性

Rust 的开发团队致力于确保即使语言不断发展,代码也能继续运行。该团队致力于确保旧的代码能够继续编译和运行新版本的语言,这一点是其他语言有时会忽视的。Rust 爱好者经常指出,他们能够维护他们的代码库而不需要无休止的重写。这是因为 Rust 是一种尊重其自身历史的语言。

讨厌:Rust 不是严格面向对象的语言

Rust 不遵守面向对象的编程原则,这会给一些程序员造成问题。

5、喜欢:Rust 的异步处理模型更安全

Rust 的异步编程模型允许开发人员创建独立运行的 separate functions,然后将结果连接起来。许多开发人员表示,这种结构有助于他们构建更快的代码,同时遇到更少的错误。

讨厌:异步编程很难

Rust 所做的任何事情都无法使我们不必仔细考量我们的代码。Rust 无法保护代码免受死锁或延迟;它只能提供更好的建议和更少错误的结构。开发人员仍然要对良好的应用设计和编写干净的代码负责。Rust 只是将问题最小化,并减少一些更明显的危险。

6、喜欢:没有抽象的编程

Rust 旨在支持编写 low-level、byte-tweaking 代码的 system-level  程序员;它提供对 raw bits 的访问,并期望程序员能够使用它。该语言设计是为了与许多旧的 C 语言或汇编语言代码共存。

讨厌:Byte-level access 是有风险的

许多语言在发展过程中都避免了 byte-level access。这是有充分理由的:此举很容易导致程序员陷入困境。隐藏访问可以避免风险。一些程序员最好让语言的 hidden back 来处理分配内存和表示数据的细节。

7、喜欢:一种更好的垃圾回收机制

Rust 语言有自己的内存管理方法,它不像传统的 GC 那样全面,但可以更强大。优秀的开发人员可以使用 Rust 的内存模型提供出色的性能,但他们必须掌握类型系统和原子引用计数。

对于 Rust 的死忠粉来说,亲手操作内存管理是他们喜欢的功能。即使这项工作意味着要处理大量线程并确保代码具有响应性,他们也宁愿自己动手。无论好坏,Rust 都让你自己掌握主动权。

讨厌:内存管理很痛苦

许多流行的编程语言(如 Java)已经实现了内部内存管理,因为它可以防止内存泄漏和其他错误。大多数程序不需要担心由垃圾回收引起的偶尔的小插曲。作为程序员,你可能不希望需要担心内存问题。

此外,Rust 并不是唯一提供传统垃圾回收替代方案的语言。例如,Node.js 简化了多线程编码并让你依赖 JavaScript 的运行时内存管理,这是一个很好的折衷方案。

结论:Rust 仍然是新的和不断发展的

InfoWorld 总结称,我们可以争论 Rust 是否为异步编程提供了最好的模型,摆脱垃圾收集是否真的有助于开发人员等等;但归根结底,Rust 仍然是一门非常新的语言。开发人员正在积极学习其细节并发现使用 Rust 的最佳实践。创建 Rust 程序的正确方法有待商榷,开发人员在该领域不断学习和试验。

Rust 可能是也可能不是最适合你或你的项目的语言。一般来说,它可能是也可能不是创建软件的最佳解决方案。但这是一个令人兴奋的选择,有很多探索机会。作为一门语言,Rust 很新颖,学习它可以使人的大脑得到延伸。作为程序员,它让我们有理由重新思考我们的挑战,重新制定我们的目标,并着手寻找编写现代软件的最佳方式。还有什么能比这更好呢?


相關推薦

2022-03-24

人才招聘网站 Hired 最新发布了一份“”指出,随着人才竞争的升温,对软件工程师的需求继续加速;2021 年对软件工程师的需求已经达到了 2020 年的两倍以上。 该报告基于对公司与开发人员在其就业市场上的 366,000 多次互动数

2023-04-24

证明自己比别人厉害的工具。 我不是说Rust不好, 而是不喜欢这种认为Rust就是天下第一的思想, 什么都要用Rust重写的想法。 4. Rust的强制内存管理, 在编写复杂逻辑的时候, 编译器打断太生硬了, 导致人无法安静的思考最

2021-12-13

的?我问了 25—30 位最顶级的内核开发人员,没有一个人喜欢 GPLv3。”“做了错误的技术决策,才会选择 GPLv3。杰出工程师的标志之一是做出正确技术选择,GPLv2 可以接受,GPLv3 不能。”“GPLv3 只会让自由软件更不自由。”

2023-11-07

问题! Grok 在回答问题时略带诙谐和反叛,因此如果你讨厌幽默,请不要使用它! Grok 的一个独特且根本的优势是它可以通过 𝕏 平台实时了解世界。它还能回答被大多数其他人工智能系统拒绝的尖锐问题。 Grok 基于&nbs

2021-11-24

献者,但自己却没遵守。因此,当 Rust 领导层已经明显被讨厌男性的人员渗透和腐蚀,他们贪图权力却没有改善语言和生态系统,Rust 审核团队的三名白人男性成员(他们都是非常敬业的 Rust 程序员,与 Rust 核心团队成员相反)

2023-01-17

数式编程的偏爱导致一些人讨厌他的编码风格,比如他更喜欢使用递归而不是数组。他介绍道:“在我最近交付的项目中,当我完成自己负责的那部分工作后,队友直言我的编码风格简直像是疯子。” 在被问到“为什么许多研

2023-01-21

时,领先者则是 Kotlin、C#、Python、Rust 和 Java。 最不受喜欢的五种编程语言是 JavaScript、Java、PHP、C 和 C++。但当考虑到相对用户数量时,Perl 的占比高达 96%,其次是 Visual Basic 77%,Delphi 60% 和 C 51%。 居家办公仍然是大多数开发

2022-11-14

心反复放弃过 最终化茧成蝶 为祖国信创添砖加瓦 十大理由 你们公司招聘的 .NET 架构师绝大概率没有百小僧牛逼(别杠)。 百小僧全天候待命,只要确认 Bug,当天修复,当天发版。 全球超400万个项目安装了 Furion,你

2023-03-04

修复,经过长期高频迭代,Furion 越来越稳定。 选择理由 选择 Furion 的十大理由​ 大多数企业招聘的 .NET 架构师/程序员绝大概率没有 百小僧 的水平。 百小僧 全天候待命,只要确认 Bug,

2022-09-18

而对于那些原本不是居家办公的开发者来说,他们也开始喜欢上了这一模式;Linus 称,他希望这些人能够继续保持居家办公的状态。 当然,内核中也发生了一些变化;即 Linux 内核开发者 Jonathan Corbitt 此前曾表示的:"现在不再

2022-10-13

表达了自己的共鸣。有人指出,“据我所知,连 Linus 都讨厌它”。其中一条高赞评论还指向了一个吐槽 Git 的网页(ohshitgit.com),这个吐槽页面甚至被不同国家的几十名开发者自发翻译成了不同的语言版本。 “用好 Git 很难:

2022-09-22

Microsoft Azure CTO、Sysinternals 的主要开发者 Mark Russinovich 近日发表言论称,建议开发人员停止使用 C/C++ 来启动新项目,并建议可在需要使用 non-GC 语言的场景中使用 Rust。针对此言论,外媒 The Register 向微软进行

2023-09-08

的题材,如宗教或政治。即使你不同意某人的观点,或不喜欢他们所做的决定,也要保持支持和尊重的态度。 并且,你要克制住任何脏话及冒犯性的语言,即使它没有明确地指向任何人。参与时不需要这样,且一些人会对此相

2023-02-02

要版本发布之前完成它,重写原因包括: 没有人真正喜欢 C++ 或 CMake,也没有摆脱旧工具链的明确途径。每年的“开发痛苦”都会加重。 C++ 正在成为一种“遗留语言”,未来寻找贡献者将变得困难,而 Rust 拥有一个活跃且