Rust创历史新高第12名:学了三年的我终于等到了这一天

52 阅读8分钟

上周看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++的地位……老实说,我也不知道。但至少现在,我打算继续学下去。

编译器的报错信息,我还是决定再看它五十年。