上周看TIOBE榜单的时候,我差点以为自己眼花了。
Rust,这门被吐槽"学习曲线陡到能绊倒大象"的语言,居然爬到了第12位,创下历史新高。更离谱的是,TIOBE的CEO Paul Jansen两个月前还在说"Rust的增长似乎进入平台期",结果这次直接被打脸——他不得不在6月榜单标题里写:"关于Rust进入平台期的报道,或许为时过早。"
说实话,看到这条新闻的时候,我愣了好几秒。
作为一个断断续续学了三年的Rust用户,这感觉就像看着自己追了好久的乐队终于爆火——有点骄傲,有点心酸,还有一种"我早就说过吧"的隐秘快感。
一、从"小众玩具"到"内核正式成员"
Rust这几年经历了什么?
先说点技术圈外的人可能不知道的事:2026年4月发布的Linux 7.0内核,Rust正式从"实验性支持"升级为"永久组成部分"。
这意味着什么?
全球最主流的开源操作系统,认可了Rust作为内核开发语言的地位。Red Hat推出的Nova驱动(Rust原生NVIDIA显卡驱动)、Apple Silicon GPU驱动(Asahi项目)这些产品已经在生产环境跑起来了。
但如果你问我学Rust的过程有多酸爽,我可以讲三天三夜。
我第一次接触Rust是2023年,当时看了篇文章说"Rust能让你的代码在编译阶段就消灭空指针和内存泄漏",作为一个被C++各种野指针坑过的老油条,我直接心动了。
结果呢?
光是理解Ownership(所有权)和Borrow Checker(借用检查器)这两个概念,我就卡了两周。每次编译报错,屏幕上都是一堆我看不懂的术语,什么"does not live long enough"、"cannot borrow as mutable because it is also borrowed as immutable"……
我当时的心态:
error[E0505]: cannot move out of `x` because it is also borrowed
--> src/main.rs:5:5
|
4 | let r = &x;
| - borrow of `x` occurs here
5 | drop(x); // 等等,我在干啥?
| ^^^^^^ move out of `x` occurs here
看完这个报错,我整个人是懵的。就一个简单的变量移动,为啥编译器不让我动?
后来才明白,Rust的编译器不是不让你做事,它是在保护你。只是这种保护方式,对习惯了C/C++那种"想干啥就干啥"的程序员来说,确实需要适应期。
二、TIOBE榜单背后的"真香"定律
TIOBE CEO改口这件事,其实挺有意思的。
两个月前他判断Rust"进入平台期",依据是Rust在TIOBE指数里连续一年排名没有明显提升。当时很多人觉得有道理——毕竟Rust的学习曲线确实劝退了不少人。
但Paul Jansen这次说了一句话,我觉得挺到位的:
"Rust的核心优势在于同时兼顾性能、内存安全与强表达能力,很少有其他语言能在这三点上同时成立。"
这句话让我想起一个老梗:编程语言有个"不可能三角",你只能同时优化其中两个——要么高性能+易用,但可能有内存问题;要么内存安全+易学,但性能要打折。
Rust想做的是打破这个三角,结果就是——它三个都要,但代价就是"难学"。
从榜单数据来看,Rust确实在突破。2020年6月首次进入前20后,虽然爬升速度不算快,但一直在稳步前进。这次冲到的第12位,已经是历史最高了。
Paul Jansen的原话也很有趣:
"预测未来从来都不是一件容易的事。Rust已经超出了我此前的预期,未来几年它能否延续当前的发展势头,仍然值得关注。"
翻译成人话就是:我承认我之前判断错了,但我也不能保证它以后一定行。
这态度倒是挺实在的。
三、AI时代,Rust反而更吃香了
说起来有点讽刺。
Rust一直以"难学"著称,结果到了AI时代,它反而更吃香了。
原因很简单:AI推理服务对性能和稳定性要求极高,而Rust的特性正好对上了。
几个我听过的案例:
- Hugging Face推出的candle框架,纯Rust实现的机器学习框架,编译产物只有几MB,特别适合Serverless和边缘部署
- Cloudflare透露,用Rust重构的推理引擎,相比Python版本延迟降低了80%以上
- 没有GIL限制,Rust能充分利用多核CPU,高并发请求场景下性能稳定
对于需要7×24小时运行的推理服务来说,这种"可预测的性能"太重要了。Python虽然好写,但GIL限制加上运行时开销,在高并发场景下确实有点吃力。
我之前也想过要不要把一些Python服务迁移到Rust,结果被"所有权""生命周期"这些概念劝退。现在看来,如果AI推理场景继续爆发,Rust人才需求只会越来越大。
四、我的Rust踩坑实录
说了这么多"宏观"的,聊聊我自己的踩坑经历吧。
第一个坑:学完基础语法就开始飘
Rust的基础语法其实不算难,常量、变量、函数、结构体……有C/C++基础的很快就能上手。
我当时觉得自己行了,兴冲冲地想写个网络爬虫。结果一动手就发现不对劲——我要处理HTTP请求,得用reqwest库;我要解析HTML,得用scraper库;我要异步并发,得用tokio……
每个库都有自己的异步runtime要求,reqwest需要tokio,scraper需要blocking或者自己加锁……最后我光配置环境就折腾了一周,代码一行没写。
第二个坑:生命周期标注让人抓狂
后来我学聪明了,先从同步代码开始写。
结果写到一个函数需要返回引用的地方,又卡住了:
fn longest<'a>(x: &'a str, y: &'a str) -> &'a str {
if x.len() > y.len() {
x
} else {
y
}
}
这个'a是什么意思?为什么函数签名要写这么长?
后来才理解,这是Rust在编译期追踪引用的生命周期,确保不会出现悬垂引用。虽然写起来麻烦,但一旦理解了,就能写出更安全的代码。
第三个坑:async/await的runtime混用
终于鼓起勇气写异步代码了,结果又踩坑。
tokio和async-std是两个不同的异步runtime,我写的代码基于tokio,但依赖的某个库要求async-std……
最后是怎么解决的呢?当然是重新学一遍tokio的用法,然后祈祷不要再遇到runtime混用的问题。
五、Rust现在适合学吗?
说了这么多坑,到底要不要学Rust?
我的看法是:看你想做什么。
适合学的情况:
- 你做系统编程、嵌入式、数据库、网络服务这类对性能和稳定性要求高的方向
- 你被C/C++的内存问题坑过,想找更安全的替代
- 你的团队已经在用Rust或者计划迁移到Rust
不太适合的情况:
- 你主要是做Web前端、数据分析、机器学习(Python更香)
- 你只是好奇想了解一下,不打算深入(学Rust的时间成本挺高的)
- 你的项目对上线时间要求很高(Rust编译速度确实慢)
对于前端/Java开发者来说,如果你们团队在用Rust重构一些基础设施,或者你们公司在招Rust工程师,那确实值得学一下。但如果只是想"了解一下新趋势",我建议先看看其他更实用的东西。
六、Rust的"平台期"真的过了吗?
回到TIOBE榜单的事。
Paul Jansen说"平台期或许为时过早",这个判断对不对?
我的观察是:Rust确实在扩大影响力,但距离"主流语言"还有差距。
一个明显的证据是:虽然Rust的排名在上升,但它在TIOBE的份额只有1.26%。Python是18.96%,C是10.77%,C++是8.03%——Rust和它们比,差距还很大。
另一个问题是:Rust的学习曲线确实限制了其普及。有多少公司愿意让员工花几个月时间专门学Rust?尤其是当项目进度紧的时候,这种投入很难得到回报。
Paul Jansen自己也说了:
"Rust的设计理念和核心概念对开发者的编程能力要求相对较高,这可能会限制其对更广泛受众的吸引力。"
所以我的判断是:Rust会继续上升,但速度不会太快。它更可能在系统编程、云基础设施、AI推理这些细分领域深耕,而不是突然变成人手必备的"全民语言"。
写在最后
上周看到Rust创新高的新闻时,我发了条朋友圈:
"学了三年的Rust终于等到这一天。虽然我写的Rust代码还是经常被编译器骂,但至少我知道这门语言没选错。"
有朋友在评论区问:"Rust这么好学吗?"
我回他:"不好学,但它值得。"
就像健身一样,Rust的学习曲线确实陡,但一旦过了那个坎,你会发现自己的代码质量提升了一个档次。你会习惯在编译阶段就思考内存安全问题,习惯用Ownership模型组织代码——这些东西虽然学的时候痛苦,但会让你成为一个更好的程序员。
至于Rust能不能继续上升、能不能真正威胁到C/C++的地位……老实说,我也不知道。但至少现在,我打算继续学下去。
编译器的报错信息,我还是决定再看它五十年。