主题
字号
CHAPTER 07 ≈ 12 MIN READ

我要不要学 Rust

结语.1 先说结论

如果你是大一,微电子和AI方向,已经熟悉C和Python,想知道"我现在要不要学Rust",我的直接答案是:

现在不用专门学,但值得花两到三周时间了解它的核心思想。日后如果有需要,有C基础的你入门不会太难。

下面我来解释这个结论背后的逻辑。

结语.2 嵌入式场景:Rust对你意味着什么

结语.2.1 STM32有Rust支持吗

有,但成熟度有差距。

支持STM32的Rust生态主要是:

可以用,但坑比用STM32CubeMX生成C代码多。原因:

  1. 工具链配置(调试器、OpenOCD/probe-rs的集成)需要额外折腾
  2. 文档和社区资源远不如C生态,遇到问题搜不到答案的概率高
  3. 某些外设的HAL实现不完整,需要直接操作寄存器(即写unsafe代码)

我的建议:先用C学嵌入式,把基本功打好。等你对嵌入式架构有了感觉,再去探索Rust嵌入式生态。到那时候Rust嵌入式也会更成熟。

如果你对RP2040(树莓派Pico)感兴趣,这块板子的Rust支持是相对好的,rp-hal维护积极,文档比较完整,作为Rust嵌入式入门的平台比STM32更友好。

结语.2.2 RISC-V上的Rust

RISC-V是微电子方向不可回避的话题,Rust的RISC-V支持是真的好——因为RISC-V是设计相对干净的指令集,Rust的LLVM后端对它支持很好。不管是裸机还是有OS的RISC-V环境,Rust都是一个可行的选项。

如果你的课程或研究有RISC-V嵌入式的内容,Rust是值得考虑的工具,生态比STM32要活跃一些。

结语.3 AI基础设施:Rust在你的方向上扮演什么角色

结语.3.1 直接角色有限

作为AI方向的学生,你直接写Rust代码的概率不高。你的主战场是Python(训练脚本、实验管理、模型评估)和CUDA C(如果你做底层优化)。Rust不在这个主线上。

但Rust会以各种间接方式影响你的工作:

结语.3.2 AI基础设施的底层趋势

一个值得关注的趋势:AI基础设施(不是AI算法本身,而是训练/推理/部署的工程框架)正在越来越多地用Rust重写性能关键路径。原因是一样的:大规模AI推理对延迟、吞吐量、内存效率的要求极高,Rust在这里有竞争力。

Candle(HuggingFace推出的纯Rust ML框架)、Burn(另一个Rust ML框架)、以及各种推理引擎的Rust实现正在出现。这些不是PyTorch的替代品,而是面向生产部署的轻量级推理工具,把模型从Python环境部署到不依赖Python运行时的场景。

这对你的直接影响:如果你日后进入AI基础设施团队(不是做AI研究,而是做AI工程/MLOps),Rust的知识会有价值。如果你专注于AI研究,Rust大概率不是你需要掌握的技能。

结语.4 学习成本评估:有C基础需要多久入门

结语.4.1 你的优势

有C基础的人学Rust,有几个明显优势:

理解内存布局。Rust的很多设计(栈vs堆、所有权的移动语义、裸指针的unsafe使用)都假设你理解内存是怎么工作的。C背景让你对这些有直觉,这是Python用户很难有的。

理解指针和引用。Rust的引用(&T&mut T)在语义上类似C的指针,但有借用规则的约束。理解C指针的人能更快地理解借用检查器在保护什么。

命令行和工具链不陌生。你不会被Makefile、编译选项、链接器脚本这些东西吓到,对新的构建系统(cargo)的学习曲线更小。

结语.4.2 你的劣势

C的自由主义习惯。C允许你随便做内存操作,Rust不允许。从C切换到Rust,最开始会觉得"为什么这么多限制",需要主动改变思维模式,不是"绕过规则"而是"理解规则背后的逻辑"。

某些抽象是新的。枚举(Rust的enum比C丰富得多)、模式匹配、trait、泛型、迭代器适配器……这些概念如果你只接触过C和Python,有些会比较陌生。Python里的部分概念能帮助你(如迭代器、函数式风格),C里的部分不能直接迁移。

结语.4.3 时间估算

比较务实的估算,假设每天学1-2小时:

如果你目标是"了解Rust是什么、能读懂代码、对它的设计有感觉",两到三周够了。如果目标是"能在项目里用Rust写功能",至少需要两到三个月的持续投入。

结语.4.4 最好的学习路径

第一步:读《Rust程序设计语言》(The Book)。这本书免费在线(doc.rust-lang.org/book),中文版也有(rust-lang.cn/book)。前半本(第1-11章)覆盖了核心概念,读完就有了基础。这本书质量极高,是语言入门书里的标杆。

第二步:做Rustlings。这是一套交互式练习,每道题是一个需要改好的小程序,通过修复编译错误来学习语法和概念。比单纯阅读有效得多。(github.com/rust-lang/rustlings)

第三步:写一个你感兴趣的小项目。不管是CLI工具、一个简单的HTTP服务,还是一个嵌入式的小实验。有具体目标的学习比泛泛而学效率高。

第四步(可选):读《Rust圣经》(Rust语言圣经)。这是一本面向中文读者的Rust学习材料,内容比官方Book更丰富,有大量工程实践的内容。(course.rs)

结语.5 最终结论:你和Rust的关系

让我用一个简单的框架来回答"要不要学":

如果你是以下情况,现在就可以开始

如果你是以下情况,暂时了解,日后深入

如果你是以下情况,可以先了解不深学

对于最后这种情况,你已经读完了这本书,这就够了。你现在知道Rust是什么、为什么存在、在哪里出没、被谁重视。当你日后在工作中遇到Rust的项目,你不会一脸茫然;当同学讨论Rust时,你能参与;当面试官问"你了解Rust吗",你有话说。

这就是这本书的全部目标:让你对Rust有真正的了解,而不是对概念的堆砌

Rust值得你尊重,但不需要你仰视。它是一门有真实解决的真实问题的工程语言,而不是一个需要信仰的宗教。了解它,在你需要的时候用它,这就是对它最好的态度。

铁锈不是锈迹,是盔甲的材质。

全书完