Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Rust 发展历程

Rust 不是凭空冒出来的一门语言。它出现的背景,和现代软件工程对安全性、性能、协作效率的持续要求直接相关。对个人开发者来说,它是一门值得投入学习成本的语言;对团队来说,它又是一种能够重新定义工程边界的工具。

为何又来一门新语言?

很多语言都在尝试解决工程问题,但往往只能覆盖其中一部分。

  • 脚本语言上手快,但性能和静态约束有限。
  • 系统语言性能强,但内存安全和并发安全成本高。
  • 工程语言生态成熟,但底层控制能力又不够灵活。

Rust 试图把这些矛盾重新组合:既要接近底层性能,也要提供现代语言的安全约束和工具链体验。

缓解内卷

这里说的“缓解内卷”,不是说学了 Rust 就不用竞争,而是它能让竞争方式发生变化。

  • 你不再只是在常规 CRUD、脚本堆叠、普通业务开发里拼熟练度。
  • 你会被迫理解内存、生命周期、错误处理、并发模型和接口边界。
  • 这些能力会把你从“能写代码的人”往“能设计系统的人”推。

Rust 的门槛本身就是筛选器。它不一定适合所有人,但确实能让会用它的人形成更强的技术辨识度。

效率

讨论 Rust 时,效率不能只看运行速度。更有价值的是把效率拆开来看。

学习效率

Rust 的学习效率在前期并不高。

  • 需要理解所有权、借用、生命周期这些核心概念。
  • 编译器报错虽然详细,但一开始会显得“严格过头”。
  • 很多以前靠经验规避的问题,在 Rust 里会被明确暴露出来。

但一旦度过前期,学习收益会非常高。因为 Rust 教给你的不是某个框架 API,而是一整套更严谨的工程思维。

运行效率

Rust 的运行效率是它最容易被认可的一面。

  • 没有 GC 带来的不可控停顿。
  • 对内存布局和资源管理有足够强的控制能力。
  • 很适合做高性能服务、系统工具、编译器、游戏基础设施和推理部署组件。

如果你的项目既要快、又要稳、又不想把大量时间花在排查野指针和悬空引用上,Rust 的价值就会很明显。

开发效率

Rust 的开发效率很有争议,因为它不是那种“开局最快”的语言。

短期看:

  • 写起来更慢。
  • 改一个接口,编译器会把受影响的地方全部拎出来。
  • 需要更早做结构设计。

长期看:

  • 重构更可控。
  • 并发代码更放心。
  • 边界条件更早暴露。
  • 上线后因为低级错误导致的返工会减少。

所以 Rust 更像是“把问题前置”,而不是“把问题消灭”。只是问题在编译期解决,通常比在线上解决便宜得多。

个人的好处

Rust 对个人最大的价值,不只是多掌握一门语言,而是强迫你升级自己的技术判断标准。

成为更好的程序员

写 Rust 会逼你回答很多在其他语言里可以回避的问题。

  • 数据到底归谁拥有?
  • 这个接口会不会泄漏内部状态?
  • 并发访问是否真的安全?
  • 错误应该在哪里处理?

久而久之,你在写其他语言时也会更谨慎,设计会更清楚,边界会更明确。

增加不可替代性

真正稀缺的不是“会用某个框架的人”,而是能处理复杂工程问题的人。

Rust 相关岗位虽然总量未必最大,但往往更集中在高性能基础设施、区块链、数据库、AI 推理、系统工具链、安全产品这些更强调硬实力的方向。能胜任这些方向的人,替代成本通常更高。

团队的好处

团队采用 Rust,真正获得的不是“更时髦的技术栈”,而是更稳定的协作边界。

  • 很多代码规范不再靠口头约定,而是靠编译器强制执行。
  • 复杂模块的维护成本更可控。
  • 重构时不容易因为隐式副作用而牵一发动全身。
  • 在高并发或底层模块里,可以更有信心地做性能优化。

这类收益在小项目里未必立刻显现,但在长期维护的工程里会越来越明显。

开源

Rust 社区和开源生态是它快速发展的关键原因之一。

  • 官方工具链整体体验统一。
  • 社区对文档、示例和工程质量比较重视。
  • crates.io 提供了相对清晰的包管理体验。
  • 很多项目愿意把性能敏感模块逐步改写为 Rust。

Rust 的开源生态仍在继续成长,但它最有价值的一点,是很多项目不仅“能用”,而且在工程质量上也更值得参考。

相比其他语言 Rust 的优势

Rust 的优势不是全方位碾压,而是在某些关键维度上更平衡。

Go

和 Go 相比,Rust 的抽象能力、零成本抽象、类型表达力通常更强。

  • Go 更适合快速搭建服务和统一团队风格。
  • Rust 更适合对性能、安全、底层控制要求更高的场景。

如果你更重视“先跑起来”,Go 更轻;如果你更重视“边界严格、性能稳定、底层可控”,Rust 更有优势。

C++

和 C++ 相比,Rust 最大的优势是现代化的安全模型和一致性更强的工具链。

  • 同样能做系统级开发。
  • 但 Rust 在内存安全、依赖管理、构建体验上更现代。
  • 很多 C++ 项目中的经典风险点,在 Rust 中会被更早限制。

它不一定能完全替代 C++,但在新项目里,Rust 往往是更理性的默认选择。

Java

Java 在企业应用和生态成熟度上依然非常强,但 Rust 更适合需要极致资源控制和低开销运行时的地方。

  • Java 更适合大型业务系统、成熟中间件和组织化开发。
  • Rust 更适合底层服务、代理层、推理引擎、插件和系统组件。

两者不是正面冲突关系,而是落点不同。

Python

Python 的优势是开发速度、生态广度和 AI 领域的统治力;Rust 的优势是性能、部署稳定性和类型约束。

  • Python 适合实验、脚本、数据处理和模型训练外围流程。
  • Rust 适合把性能瓶颈模块、部署模块和工具链组件做得更可靠。

实际工程里,两者经常是互补关系,而不是二选一。

使用现状

Rust 现在已经不是“小众兴趣语言”了,但也还没有成为所有场景下的默认方案。

  • 在系统工具、CLI、数据库、区块链、浏览器组件、安全产品中存在感越来越强。
  • 在 AI 推理部署、边缘计算、高性能网关这类场景里也越来越常见。
  • 大量团队采用 Rust 的方式不是全量迁移,而是先替换性能敏感或稳定性敏感模块。

这意味着它的现实路线更像“逐步渗透”,而不是“一夜之间统一天下”。

Rust 语言版本更新

Rust 语言的迭代节奏一直比较稳定。

  • 版本更新频繁,但总体可预期。
  • 工具链和生态协同较好。
  • 新特性推进相对谨慎,不会轻易破坏已有工程。

这种稳定更新机制很适合长期维护型项目。你不需要每次升级都怀疑整套工程会不会被打碎。

总结

Rust 的意义,不只是多了一门“语法不同的语言”。它真正重要的地方在于:它试图把性能、安全、工程纪律和现代工具链放到同一个体系里。

如果你只是想最快写完一个小工具,它未必是最轻的选择。
但如果你想长期积累更扎实的工程能力,或者想进入更强调系统能力和不可替代性的方向,Rust 值得认真学。