在 Stack Overflow 的年度开发者调查中, Rust 连续第八年位居“最受欢迎的编程语言”榜首。超过 80% 的开发人员表示他们希望明年再次使用该语言,您不得不想知道一种不到 20 年前创建的语言如何俘获了世界各地开发人员的心。

在本文中,我们将了解 Rust 的历史、它的常用用途、为什么开发人员如此喜爱它,以及一些可帮助您开始学习 GitHub 上增长最快的语言之一的资源。

那么,Rust 编程语言是什么?

Rust 的打印宏显示输出“Hello, World!”

fn main() {
	println!("Hello, World!");
}

Rust 最初旨在作为 C 和 C++ 的更安全替代品,它是一种系统编程语言,由于其对安全性、性能和生产力的重视,在开发人员中获得了广泛的欢迎。Rust 是一种静态类型语言,因此变量和表达式类型在编译时确定和检查,这有助于增强内存安全和错误检测,从而实现更可靠的构建。

2006 年,软件开发人员 Graydon Hoare 在 Mozilla 工作期间启动了 Rust 作为个人项目。据《麻省理工科技评论》采访称,Rust 的灵感来自于 Hoare 公寓楼里一部破损的电梯。电梯操作系统的软件崩溃了,霍尔了解到此类问题通常来自于程序使用内存的问题。

通常,这些类型设备的软件是用 C 或 C++ 编写的,但这些语言需要大量的内存管理,这可能会导致错误,从而导致系统崩溃。因此,霍尔开始研究如何创建一种既紧凑又无内存错误的编程语言。

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

自 1.0 版本发布以来,Rust 的受欢迎程度和采用率呈爆炸式增长,Microsoft 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 不采用垃圾收集。相反,它的所有权和借用规则管理内存,这有助于开发人员精确控制内存分配和释放,以实现高效的资源管理。
  • 货物包装经理。Rust 的内置包管理器 Cargo 简化了项目管理、依赖项跟踪和构建,这有助于实现高效且有组织的开发工作流程。但这并不能说明 Cargo 生态系统有多么疯狂。Ohrendorff 表示:“我的团队利用高质量的开源包进行散列、序列化、多线程、数据结构、压缩等。这些是性能关键的库。如果没有其中的一些,我们重新思考 GitHub 上的代码搜索的项目就不可能实现。” 这是一个有趣的事实:Rust 实际上是第一个拥有标准包管理器的系统编程语言,因此,Rust 生态系统非常强大。
  • 零成本抽象。此功能允许开发人员编写高级代码抽象和功能,而不会引入任何运行时性能开销。
  • 模式匹配。这种强大的语言功能使开发人员能够简洁有效地将复杂的数据结构与特定模式进行匹配,以干净且可读的方式提取和处理不同的案例或场景。
  • 类型推断。此功能允许 Rust 编译器在您编码时根据上下文自动检测表达式。“许多编程语言都有某种类型推断,”Ohrendorff 说。“C# 和 C++ 有一些,Rust 有更多,Haskell、Scala 和 ML 这样的语言有更多。”

运行这段代码是为了 Rust 开发者之间的一个内部笑话😆

fn main() {
    break rust;
}

Rust 常用来做什么?

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

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

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

性能关键型后端系统是处理需要高速处理、低延迟响应和高效资源利用的任务的软件组件或服务,而 Rust 的性能、线程安全性和错误处理能力使其成为开发此类后端系统的绝佳选择。系统。事实上,我们在 GitHub 上使用 Rust 构建了其中一些系统。例如,我们的代码搜索功能的后端是用 Rust 编写的(您也可以阅读有关使用 Rust 开发 GitHub 最新代码搜索的更多信息)。

使用 Rust 开发操作系统

Rust 最初是为了解决操作系统问题而创建的(还记得电梯问题吗?),因此,毫不奇怪,它经常用于构建操作系统、内核、设备驱动程序或其他低级组件,其中对内存和性能的控制至关重要。Redox是一个类 Unix 操作系统,是用 Rust 编写的,这有助于其最关键的功能:安全性。“ Fuchsia是 Google 构建的另一个例子,”Ohrendorff 说。“如果你有一个 Google Nest 智能扬声器,它很可能运行 Fuchsia。”

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

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

有兴趣构建自己的操作系统吗?

该博客文章集提供了有关如何使用 Rust 创建小型操作系统的分步教程。您还可以在 GitHub上找到该项目的源代码。

使用 Rust 进行 Web 开发

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

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

Rust 的速度、内存管理和安全性都有助于其参与加密货币和区块链技术。例如,Polkadot旨在实现多个区块链之间的互操作性和交互,以安全和去中心化的方式共享信息和资产,它利用 Rust 构建其核心基础设施。Polkadot 的运行时逻辑(控制区块链的行为和规则)也是用 Rust 编写的。查看此存储库Awesome-blockchain-rust,了解一些有用的组件,用于使用 Rust 构建您自己的区块链应用程序。

使用 Rust 构建 CLI 工具

Rust 编译为高效的机器代码及其富有表现力的语法使其成为构建命令行工具和应用程序的有力选择。另外,编写命令行应用程序是学习和熟悉 Rust 的好方法。看看这份关于如何在 15 分钟内使用 Rust 构建您自己的 CLI 应用程序的综合指南!

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

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

为什么开发人员喜欢 Rust

尽管 Rust 的用户群远不如 Java 或 Python 那样大,但 Rust 继续与互联网上最受尊敬的列表中的大热门竞争。甚至还有一个完整的网站,其中包含开发人员对 Rust 的赞扬。

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

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

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

如何开始使用 Rust

我们知道,本文中充斥着大量资源来提高您的 Rust 技能,但我们还为您提供了另一个专业提示:使用GitHub Copilot来试用 Rust 。作为您的 AI 支持的结对程序员,GitHub Copilot 可以帮助您在使用定制代码建议时学习和完善 Rust 基础知识。

这是 GitHub 的开发者倡导者首次使用 GitHub Copilot 试验 Rust。对于我们所有经验丰富的 Rustaceans,您有何看法?这个建议正确吗?

请添加图片描述
如果您准备好开始使用 Rust 进行编码之旅,GitHub Copilot 可以快速启动您的进度,而无需一次花几个小时研究文档。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐