迷途通 发表于 2022-10-15 22:22:14

喜欢 / 讨厌 Rust 的 7 个理由

InfoWorld梳理了一份致使开发人员喜欢或讨厌使用Rust编程的原因清单,分别列出了7条内容。具体如下:1、喜欢:Rust解决了规模和并发问题随着开发人员解决规模和并发性问题(即需要同时处理来自多个不同来源的输入),软件变得越来越复杂。许多人认为Rust是构建适合当今架构的工具的最佳语言。Web浏览器是需要大规模可扩展性的应用程序的一个很好的例子,因此Rust是由开发Firefox的非盈利公司Mozilla创建的也就不足为奇。Mozilla的开发人员研究了他们在代码中遇到的问题并寻求更好的解决方案。最后,他们想出了Rust。讨厌:Rust的并发模型太复杂了虽然多线程系统越来越流行,但对于很多开发人员来说这并不是真正需要的;Scientificprogrammers倾向于编写单线程函数。Web开发人员可以编写PHP代码,它提供了一种简单的声明式方法来创建网站。Serverlessprogrammers只需编写一个函数,然后将繁重的工作留给其他人。需要创建更复杂的Web应用程序的开发人员则可以转向Node.js,它提供了另一种处理多线程应用的策略。Node的事件驱动模型与基于Promise的代码相结合,也可以产生简单而优雅的结果。所有这一切都意味着Rust的多线程编程模型提供了比许多程序员所需的更复杂的功能。一些人可以不计较这些额外的东西并对Rust保持热爱,但有些程序员宁愿不去处理这些复杂的东西。“他们只是不需要它”。2、喜欢:Rust是一门现代语言现如今许多编程语言的设计都专注于在创建功能性语言,以引导开发人员编写更容易分析的软件,Rust也是如此。许多开发人员喜欢Rust的logical、functionalsyntax,它鼓励将代码结构化为一系列嵌套函数调用。与此同时,Rust的创造者想要构建一些东西来处理保持物联网正常运行所需的bit-banging、low-level编程。Rust为希望用现代风格解决这些非常现实的挑战的程序员提供了正确的组合。讨厌:它有一个陡峭的学习曲线在某些方面,学习Rust是一个忘掉你从编程生涯开始就可能遵循的概念和技术的过程。例如,学习Rust需要忘掉JavaScript和Java等旧语言所要求的scope和ownership的概念。如果你想利用Rust的优势,则必须愿意放弃一些可能导致错误的已熟悉的功能。还有些人认为,Rust的语言语法也很复杂。除了大括号和圆括号,还有方括号、竖线和大于号;有时候甚至还有双冒号。构建复杂的多线程工具的Rust开发者可能会认为Rust的语法复杂性是一种值得的折衷,熟悉功能流的真正爱好者甚至可能会喜欢它。但其他人的感受却不尽相同,学习Rust的所有语义规则并不适合casualuser。3、喜欢:你可以告诉Rust编译器该做什么一些开发人员将Rust所需的所有额外细节和模板视为优势。它让他们可以injecthints,使编译器更容易找出正在发生的事情并捕获任何潜在的错误。华丽的代码为开发人员提供了更好的机会来完全指定应该发生的事情,此举有助于避免编译器错误。Rust通过注入有关代码应该如何工作的提示来邀请开发人员编写更好、更快的代码。讨厌:谁想告诉编译器该做什么啊?有些开发者只是想要一种语言,他们可以用它来完成运行时不会崩溃的循环、可以处理后台工作。因此如果编译器有时生成的代码比较慢,或者可能有点错误,无伤大雅。许多工作并没有那么复杂,而且调试起来也不难。相较Rust编译器的使用,配置更多的硬件反而要更轻松一点。4、喜欢:Rust具有很好的向后兼容性Rust的开发团队致力于确保即使语言不断发展,代码也能继续运行。该团队致力于确保旧的代码能够继续编译和运行新版本的语言,这一点是其他语言有时会忽视的。Rust爱好者经常指出,他们能够维护他们的代码库而不需要无休止的重写。这是因为Rust是一种尊重其自身历史的语言。讨厌:Rust不是严格面向对象的语言Rust不遵守面向对象的编程原则,这会给一些程序员造成问题。5、喜欢:Rust的异步处理模型更安全Rust的异步编程模型允许开发人员创建独立运行的separatefunctions,然后将结果连接起来。许多开发人员表示,这种结构有助于他们构建更快的代码,同时遇到更少的错误。讨厌:异步编程很难Rust所做的任何事情都无法使我们不必仔细考量我们的代码。Rust无法保护代码免受死锁或延迟;它只能提供更好的建议和更少错误的结构。开发人员仍然要对良好的应用设计和编写干净的代码负责。Rust只是将问题最小化,并减少一些更明显的危险。6、喜欢:没有抽象的编程Rust旨在支持编写low-level、byte-tweaking代码的system-level程序员;它提供对rawbits的访问,并期望程序员能够使用它。该语言设计是为了与许多旧的C语言或汇编语言代码共存。讨厌:Byte-levelaccess是有风险的许多语言在发展过程中都避免了byte-levelaccess。这是有充分理由的:此举很容易导致程序员陷入困境。隐藏访问可以避免风险。一些程序员最好让语言的hiddenback来处理分配内存和表示数据的细节。7、喜欢:一种更好的垃圾回收机制Rust语言有自己的内存管理方法,它不像传统的GC那样全面,但可以更强大。优秀的开发人员可以使用Rust的内存模型提供出色的性能,但他们必须掌握类型系统和原子引用计数。对于Rust的死忠粉来说,亲手操作内存管理是他们喜欢的功能。即使这项工作意味着要处理大量线程并确保代码具有响应性,他们也宁愿自己动手。无论好坏,Rust都让你自己掌握主动权。讨厌:内存管理很痛苦许多流行的编程语言(如Java)已经实现了内部内存管理,因为它可以防止内存泄漏和其他错误。大多数程序不需要担心由垃圾回收引起的偶尔的小插曲。作为程序员,你可能不希望需要担心内存问题。此外,Rust并不是唯一提供传统垃圾回收替代方案的语言。例如,Node.js简化了多线程编码并让你依赖JavaScript的运行时内存管理,这是一个很好的折衷方案。结论:Rust仍然是新的和不断发展的InfoWorld总结称,我们可以争论Rust是否为异步编程提供了最好的模型,摆脱垃圾收集是否真的有助于开发人员等等;但归根结底,Rust仍然是一门非常新的语言。开发人员正在积极学习其细节并发现使用Rust的最佳实践。创建Rust程序的正确方法有待商榷,开发人员在该领域不断学习和试验。Rust可能是也可能不是最适合你或你的项目的语言。一般来说,它可能是也可能不是创建软件的最佳解决方案。但这是一个令人兴奋的选择,有很多探索机会。作为一门语言,Rust很新颖,学习它可以使人的大脑得到延伸。作为程序员,它让我们有理由重新思考我们的挑战,重新制定我们的目标,并着手寻找编写现代软件的最佳方式。还有什么能比这更好呢?
页: [1]
查看完整版本: 喜欢 / 讨厌 Rust 的 7 个理由