专栏名称: 图灵教育
是好书,把我们联系在一起
目录
相关文章推荐
天池大数据科研平台  ·  一文漫谈DeepSeek及其背后的核心技术 ·  昨天  
武汉本地宝  ·  考生注意!武汉3月普通话测试即将开始报名! ·  2 天前  
软件定义世界(SDX)  ·  指标数据体系建设分享 ·  2 天前  
大数据文摘  ·  为什么中国只有一个 DeepSeek? ·  4 天前  
51好读  ›  专栏  ›  图灵教育

豆瓣 9.2 高分口碑,这本书凭什么能得到大家的认可?

图灵教育  · 公众号  ·  · 2025-02-11 11:20

正文

Rust 自发布以来,凭借其无与伦比的内存安全性、卓越的性能和开发者的高度满意度,迅速赢得了全球程序员的喜爱。越来越多的大型项目在采用 Rust,像 Firefox、Cloudflare 等公司都在其项目中引入了这门语言,甚至微软和谷歌也在使用 Rust 提升系统级应用的安全性和性能。
根据 2024 年 Stack Overflow 的年度开发者调查,大多数开发人员使用过并希望再次使用的语言依旧是 Rust,支持率高达 83%。Rust 的发展不仅仅体现在开发者社区的热情,也体现在其在系统编程、Web 开发、嵌入式编程等多个领域的广泛应用。
那么,Rust 到底为何如此受欢迎?本文将带你从 Rust 的发展历程开始,通过它的技术用途,探索为何它深受开发者喜爱,并为你提供一些学习资源,帮你快速上手近一年来增长最快的编程语言之一。

1

什么是 Rust 编程语言

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

Rust 最初的设计目标之一是提供一种更安全的系统级编程语言,它不仅在系统编程领域被视为 C 和 C++ 的有力竞争者,还在 Web 开发、嵌入式、区块链等多个领域展现出了强大优势。

2006 年,软件开发者 Graydon Hoare 在业余时间启动了 Rust 语言的开发,该项目最初并非 Mozilla 的正式项目。直到 2009 年,Mozilla 看到 Rust 的潜力,开始提供资助和支持,使其成为一个正式的开源项目。

根据 Graydon Hoare 在 MIT Technology Review 的采访,Rust 的灵感来源于他公寓楼里一部故障电梯。电梯操作系统软件崩溃了,Hoare 发现这类问题通常源自程序如何使用内存的问题。

许多这类设备的软件是用 C 或 C++ 编写的,但这些语言需要大量的内存管理,这可能会导致系统崩溃。因此,Hoare 开始思考如何创建一门既简洁又没有内存问题的编程语言。

他后来将这个项目展示给了一个经理,这促使 Mozilla 在 2009 年赞助了该项目,作为其长期计划的一部分,将 Rust 融入到开发实验性浏览器引擎中。2010 年,Mozilla Research 正式宣布了 Rust 项目,并将源代码公开,成为开源项目。经过几年的开发,Rust 达到了稳定和成熟的状态——2015 年 5 月,Rust 1.0 发布,这标志着 Rust 准备进入生产阶段,为开发者提供了一个构建基础。

近年来,微软也在探索 Rust 在操作系统开发中的应用,例如在 Windows 内核的部分组件中引入 Rust 以提高内存安全性。除科技巨头之外,Rust 还拥有一个充满活力的开发者社区,或称“Rustaceans”,他们致力于使 Rust 成为一种积极和协作的体验。

认识 Ferris,Rust 的非官方吉祥物!
根据 SlashData 的一项调查,到 2024 年,全球大约有 400 万 Rust 开发人员,这个数字对比两年前几乎增加了一倍。Rust 拥有大量活跃的论坛、文档和面向各种技能水平的开发者支持社区,因此 Rust 在最受追捧的语言列表中名列前茅也就不足为奇了。

2

Rust 有什么特别之处

简单来说,Rust 解决了 C 和 C++ 中常见的内存管理问题,但这并不是它唯一的闪光点。

GitHub 的一位资深软件工程师 Jason Orendorff 与人合著了一本关于学习 Rust 编程的书,他谈到这门语言时说: “对我来说,Rust 的优点在于它既快又可靠,”Orendorff 说:“它让我写出可以在 16 个内核上运行的多线程程序,同时保持代码的可读性、可维护性和无崩溃。它还让我编写非常底层的算法,控制内存布局,并可以引入一个简单的 crate 来进行 HTTPS 请求。正是这些特性使得 Rust 独一无二。”

Jason Orendorff 创作的 Rust 书就是这本👆

在此基础上,以下是它更多深受喜爱的特性和功能:

  • 并发。Rust 通过其所有权系统内置了对并发编程的支持,该系统对数据访问施加了严格的规则。其借用模型允许受控的同步访问,从而有效防止数据竞争。这确保了多个线程可以安全地共享数据,而不会引发内存相关的问题。
  • 没有垃圾回收。与某些编程语言不同,Rust 不使用垃圾回收。相反,它的所有权和借用规则管理内存,这有助于开发人员精确控制内存分配和释放,以实现高效的资源管理。
  • Cargo 包管理器。Rust 的内置包管理器 Cargo 简化了项目管理、依赖项跟踪和构建,这有助于实现高效和有序的开发工作流程。但这并不能清楚地表明 Cargo 生态系统有多么疯狂。根据 Orendorff 的说法:“我的团队利用高质量的开源包进行哈希、序列化、多线程、数据结构、压缩等等。这些是性能关键型库。如果没有其中的一些库,我们重新思考 GitHub 上的代码搜索的项目就不可能实现。“
    这里有一个有趣的事实:Rust 的 Cargo 工具为其生态系统提供了强大的支持,使开发者能够轻松管理依赖项、构建项目并发布库。它是系统编程语言中少数拥有官方内置包管理器的语言之一,并极大推动了 Rust 社区的发展。
  • 零成本抽象。此功能允许开发人员编写高级代码抽象和功能,而不会引入任何运行时的性能开销。
  • 模式匹配。这种强大的语言功能使开发人员能够简洁有效地将复杂的数据结构与特定模式进行匹配,从而以清晰可读的方式提取和处理不同的情况或场景。
  • 类型推断。此功能允许 Rust 的编译器在您编码时根据上下文自动检测表达式。“许多编程语言都有一些类型推断,”Orendorff 说:“C# 和 C++ 有一些,Rust 有更多,而 Haskell、Scala 和 ML 等语言甚至更多。”

运行此代码,了解 Rust 开发人员😆之间的内部笑话


3

通常用 Rust 来做什么

凭借对硬件和内存的直接访问,Rust 非常适合嵌入式系统和裸机开发。由于它是一门通用语言,因此可以用于多种应用场景。
让我们探讨几个关键用例:
  • 使用 Rust 构建性能关键型后端系统

性能关键型后端系统处理的是需要高速处理、低延迟响应和高效资源利用的任务。Rust 的卓越性能、线程安全性和错误处理能力,使其成为开发这种类型系统的理想选择。事实上,我们在 GitHub 上就使用 Rust 构建了其中一些系统。例如,我们的代码搜索功能的后端就是用 Rust 编写的。
  • 使用 Rust 开发操作系统
Rust 最初是为了解决操作系统问题而创建的(还记得电梯问题吗?)——因此,不出所料,它通常用于构建操作系统、内核、设备驱动程序或其他对内存和性能的控制至关重要的低级组件。Redox 是一种类似 Unix 的操作系统,它是用 Rust 编写的,这有助于其最关键的功能:安全性。
“Fuchsia 是 Google 构建的操作系统之一”Orendorff 说:“虽然 Fuchsia 主要使用 C++ 编写,但 Google 也在其部分组件(如 Zircon 内核的一些驱动程序)中使用 Rust,以增强安全性。”
  • Rust 用于操作系统相邻代码
Rust 还非常适合编写执行与操作系统密切交互的任务代码。例如,GitHub 的 Codespaces 团队正在利用 Rust 来提高在 GitHub Codespaces 中启动虚拟磁盘的速度,并优化 Azure 存储的利用率。Coursera 还在其在线评分系统中使用了 Rust,因为它在 Docker 中运行,并且需要一种能够编译为机器代码的语言,并且具有最小的依赖项。
Rust 在 Web 服务器端的应用逐渐增加,主要用于高性能 Web 服务器、API 以及后端基础设施开发。框架如 Actix-web 和 Axum 提供了高并发的 Web 服务器支持,但 Rust 在 Web 开发领域的生态仍在不断发展,尚未达到 JavaScript、Python 等语言的成熟度。
  • 使用 Rust 进行加密和区块链开发

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

Rust 的零成本抽象、强大的错误处理能力和生态工具(如 Clap 库)使其成为构建命令行工具的绝佳选择。许多开发者选择 Rust 来编写 CLI 应用,因为它提供了高性能、良好的可维护性,并能够编译成单个二进制文件,便于分发和部署。 此外,编写命令行应用程序是学习和熟悉 Rust 的好方法。

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

4

为什么开发人员喜欢 Rust

虽然 Rust 的用户基数远不及 Java 或 Python,但它仍然在全球开发者中享有极高的声誉,常常跻身最受喜爱的编程语言榜单。

那么,究竟是什么让开发者如此喜爱 Rust 呢?如果简要总结开发者喜爱 Rust 的原因,那必定是它的速度、安全性和性能。

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

当然 欣赏 Rust 不仅仅是一门好用的语言,更是拥抱一种优先考虑创新的思维方式,同时又不损害稳定性和安全性的核心原则。

5

Rust 领域内最好的入门教程

很多初学者,学习 Rust 之初,会被复杂的资料劝退。今天小图给大家安利这本 Rust 一本通,由 Mozilla 创始团员编写,雪狼翻译,30 位一线 Rust 开发者与爱好者精心审读。内容 涉及 Rust 所有关键特性,讲解深入浅出,含大量案例,具有很强的实践性。






请到「今天看啥」查看全文