为什么 Rust 是最受开发者推崇的语言

【CSDN 编者按】Rust 连续八年蝉联“最受欢迎的编程语言”,它究竟有什么魅力,让全球开发者这个新晋编程语言如此着迷?一起来看看正在不断发展和壮大的 Rust 的起源、能力、资源和它的使用场景。

原文链接:https://github.blog/2023-08-30-why-rust-is-the-most-admired-language-among-developers/

未经允许,禁止转载!

作者 | Sara Verdi       

译者|Ric Guan    责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

在 Stack Overflow 的年度开发者调查中,Rust 已经连续第八年荣登 “最受欢迎编程语言” 榜首。并且超过 80% 的开发者表示明年还想使用 Rust 语言,这不禁让人好奇,一门诞生不到 20 年的语言是如何俘获全球开发者的心。

在本文中,我们将介绍 Rust 的历史、它的常用用途、开发者如此喜爱它的原因,并提供一些资源,帮助您开始学习 GitHub 上增长最快的语言之一。

所以,Rust 是什么?

Rust 的“Hello World” 示例

Rust 最初是作为 C 和 C++ 的一种更安全的替代语言,它是一种系统编程语言,因其强调安全性、性能和生产效率,在开发人员中大受欢迎。Rust 是一种静态类型语言,因此变量和表达式类型会在编译时就被检查并确认,这有助于增强内存安全性和错误检测,从而提高架构的可靠性。

2006 年,软件开发人员 Graydon Hoare 在 Mozilla 工作期间,将 Rust 作为个人项目启动了。根据《麻省理工科技评论》的采访,Rust 的灵感来自 Hoare 公寓楼里一部坏掉的电梯。当时电梯操作系统的软件崩溃了,Hoare 明白,类似的问题通常来自程序内存的问题。

通常,这类设备的软件都是用 C 或 C++ 编写的,但这些语言需要大量的内存管理,很容易导致错误,造成系统崩溃。因此,Hoare 开始着手研究如何创建一种既紧凑又无内存错误的编程语言。

后来,他向一位经理展示了这个项目 — 这也让 Mozilla 在 2009 年赞助了这个项目,作为将 Rust 语言纳入一项实验性浏览器引擎开发的长期努力的一部分。2010 年,Mozilla Research 正式宣布了 Rust 项目,并将源代码作为开源项目向公众发布。经过几年的开发,Rust 达到了稳定和成熟的状态,于 2015 年 5 月发布了 Rust 1.0。这一里程碑标志着 Rust 已经为生产做好了准备,并为开发人员提供了一个基础。

自 1.0 发布以来,Rust 的受欢迎程度和采用率呈爆炸式增长,微软 Windows 等顶级应用软件纷纷利用 Rust 的内存安全代码重写核心库。在科技巨头之外,Rust 还拥有一个充满活力的开发者社区,即 “Rustaceans”,他们致力于让 Rust 体验成为一种活跃的协作体验。

Ferris,Rust 的非官方吉祥物

根据 SlashData 最近的一项调查,到 2023 年,全球大约有 280 万 Rust 开发人员,这一数字在过去两年中几乎翻了三倍。Rust 拥有大量活跃的论坛、文档,以及为各种技能水平的开发者提供支持的社区,因此在最受欢迎语言排行榜上名列前茅也就不足为奇了。

Rust 有什么特别之处?

那么,究竟 Rust 的哪些关键功能使其对开发者如此有吸引力?

简单来讲,Rust 解决了一些令 C 和 C++ 相关的开发者最令人沮丧的内存管理问题,但这并不是它唯一的闪光点。GitHub 的一名软件工程师 Jason Orendorff 在一本关于 Rust 编程的书中谈到:

“对我来说,Rust 的伟大之处在于它既快速又可靠,” Orendorff 说道:“它让我能够编写在 16 个内核上运行的多头程序,并保持它们的可读性、可维护性和无崩溃性。它还允许我编写需要控制内存布局的非常低级的算法,并引入一个使 HTTPS 请求变得超级简单的包。正是这些功能的结合使 Rust 如此独特。”

在此基础上,这里还有一些深受喜爱的特性和功能:

  • 并发性。Rust 通过内置其所有权系统和借用模型为并发编程提供支持,所有权系统对数据访问执行严格的规则,借用模型则是允许受控的同时访问来防止数据竞赛。这确保了多个线程可以在共享数据上工作,而不会引入与内存相关的问题。

  • 无垃圾回收。与一些编程语言不同,Rust 不采用垃圾回收。相反,它采用所有权和借用规则来管理内存,这有助于开发人员精确控制内存的分配和删除,从而实现高效的资源管理。

  • Cargo 软件包管理器。Rust 内置的软件包管理器 Cargo, 简化了项目管理、依赖关系跟踪和构建过程,这有助于高效、有序地完成开发工作流程。但这并不能说明 Cargo 生态系统有多疯狂。根据 Orendorff:“我的团队利用高质量的开源软件包进行散列、序列化、多线程、数据结构、压缩等工作。这些都是对性能至关重要的库。如果没有其中的一些,我们在 GitHub 上重新思考代码搜索的项目就不可能实现。“ 还有一个有趣的事实:Rust 实际上是第一种拥有标准软件包管理器的系统编程语言,因此 Rust 生态系统非常强大。

  • 零成本抽象。此功能允许开发人员编写高级代码抽象和功能,而不会引入任何运行时性能开销。

  • 模式匹配。这种强大的语言功能使开发人员能够简洁有效地将复杂的数据结构与特定模式进行匹配,以干净且可读的方式提取和处理不同的案例或场景。

  • 类型推断。此功能允许 Rust 编译器在编码时根据上下文自动检测表达式。“许多编程语言都有某种类型推断,” Orendorff 说。“C# 和 C++ 有一些,Rust 有更多,Haskell、Scala 和 ML 这样的语言有更多。”

这段代码是 Rust 开发者之间的一个内部笑话,运行一下试试看?

Rust 常用于哪些领域?

由于可以直接访问硬件和内存,Rust 非常适合嵌入式系统和裸机开发。它也是一种通用语言,因此也可用于各种应用。

让我们来探讨几个关键用例:

使用 Rust 构建性能关键型后端系统

性能关键型后端系统是处理需要高速处理、低延迟响应和高效资源利用的任务的软件组件或服务,而 Rust 的性能、线程安全和错误处理使其成为开发这类系统的绝佳选择。事实上,我们在 GitHub 就使用 Rust 构建了这样一些系统。例如,我们的代码搜索功能的后台就是用 Rust 编写的。

使用 Rust 开发操作系统

Rust 最初是为了解决操作系统问题而创建的(还记得电梯问题吗?),因此,毫不奇怪,它经常用于构建操作系统、内核、设备驱动程序或其他低级组件,这其中对于内存和性能的控制至关重要。

Redox,一个类 Unix 操作系统,是用 Rust 编写的,贡献了 Rust 最重要的功能之一:安全性。“Fuchsia 是谷歌构建的另一个例子,”Orendorff 说, “如果你有一个 Google Nest 智能扬声器,它很可能运行 Fuchsia。”

Rust 用于与操作系统相关的代码

Rust 也非常适合编写执行与操作系统密切交互的任务的代码。例如,GitHub 的 Codespaces 团队正在利用 Rust 来提高 GitHub Codespaces 中虚拟磁盘的启动速度并优化 Azure 存储的利用率。Coursera 还在其在线评分系统中采用了 Rust,因为它在 Docker 中运行,并且需要一种依赖性极小的语言来编译机器代码。

使用 Rust 进行 Web 开发

Rust 越来越多地用于 Web 开发,尤其是在服务器端。Rust 的异步编程模型和性能特征使其适合构建高性能 Web 服务器、API 和后端服务。另外,Rust 的 Web 框架不断涌现,比如 Rocket,它们可以帮助人们开始编写安全的 Web 应用程序。这些框架的出现凸显了 Rust 作为一种成熟语言的地位,也有助于增加对希望在前端或后端工作中使用 Rust 的人们的支持。

使用 Rust 进行加密和区块链开发

Rust 的速度、内存管理和安全性都有助于其参与加密货币和区块链技术。例如,Polkadot 旨在以安全和去中心化的方式共享信息和资产,实现多个区块链之间的互操作性和交互,便是利用 Rust 构建其核心基础设施。Polkadot 的运行时逻辑控制区块链的行为和规则,也是用 Rust 编写的。 

使用 Rust 构建 CLI 工具

Rust 可编译高效的机器代码的能力及其富有表现力的语法,使其成为构建命令行工具和应用程序强有力的选择。另外,编写命令行应用程序是学习和熟悉 Rust 的好方法。

使用 Rust 进行嵌入式系统和物联网开发

Rust 的最小运行时间和对内存布局的控制使其对于开发嵌入式系统和物联网 (IoT) 设备非常有用。它能够防止与内存相关的错误、管理并发以及生成小型高效的二进制文件,从而满足物联网的安全性、实时性和效率需求。

为什么开发人员喜欢 Rust

尽管 Rust 的用户群远不如 Java 或 Python 那样大,但 Rust 仍在活跃在互联网上最受欢迎的编程语言的大热门竞争榜单中。甚至还有一个完整的网站,其中包含开发人员对 Rust 的赞扬。

但究竟为什么 Rust 如此受到开发者的推崇呢?如果你将非要总结开发人员如此喜爱 Rust 的几个原因,那么它们必须是该语言的速度、安全性和性能。

此外,Rust 正在通过新的框架、工具和资源不断发展和成长。你可以在 Awesome-rust 存储库中密切关注对该语言的贡献,该存储库包含令人印象深刻的 Rust 代码和资源列表。

底线:欣赏 Rust 不仅仅是采用一种语言,而是拥抱一种优先考虑创新的心态,同时又不损害稳定性和安全性的核心原则。

本文文字及图片出自 CSDN

余下全文(1/3)
分享这篇文章:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注