前端工程师应该学 Rust 吗?我的答案是:看动机

·558 字 · 约 1 分钟#Rust#前端#职业成长

「前端要不要学 Rust」大概是我被问得第二多的问题。

先看事实

前端工具链的 Rust 化已经不是趋势,是现状:SWC、Turbopack、Rspack、Biome、Rolldown……JS 写的构建工具正在被逐个替换。这一层没有争议。

但注意:「工具链用 Rust 写」和「前端工程师要写 Rust」是两回事。你用 Vite 不需要懂 esbuild 的 Go,同理你用 Rspack 也不需要会 Rust。

三种动机,三种答案

动机一:怕被淘汰 → 不用学

如果只是焦虑驱动,我明确说:不用。前端的核心竞争力仍然是产品感知、工程化能力和对 Web 平台的理解。Rust 不在这个清单里,未来五年大概率也不在。

动机二:想做工具链 → 值得学

如果你想参与构建工具、bundler、linter 这一层的开发,Rust 几乎是必选项。这条路人少、门槛高、但价值密度大。我见过的做这个方向的前端,个人杠杆都非常高。

动机三:拓宽编程视野 → 强烈推荐

这是我自己的动机。Rust 的所有权系统会强迫你重新思考「数据归谁管」这个问题,这种思维反过来会改善你写 TypeScript 的方式——你会开始本能地警惕共享可变状态。学 Rust 半年后我写的 React 代码明显变好了,这是我没预料到的收益。

举个例子,所有权让「谁能改这份数据」在编译期就一目了然:

fn main() {
    let posts = vec!["rsc", "rust", "ai-blog"];
    let count = posts.len();      // 借用:只读,不夺走所有权
    let archived = posts;         // 移动:所有权转移,posts 从此失效
    // println!("{:?}", posts);   // 编译错误:value borrowed after move
    println!("{} 篇已归档: {:?}", count, archived);
}

在 TypeScript 里同样的数据流转是「默默共享引用」,出了 bug 只能靠运行时排查。这种对比本身就是最好的教材。

我不确定的部分

WASM 会不会让 Rust 大规模进入业务前端?我不确定。目前看,WASM 在前端的真实落地集中在重计算场景(Figma、Photoshop Web、视频处理),普通业务开发碰不到。但如果 AI 推理在浏览器端起飞,这个判断可能要修正。

结论

别问「该不该学」,问「你想拿它干什么」。没有目标的技术学习,学什么都是浪费时间——这句话对 Rust 成立,对任何技术都成立。

相关文章

  • 我对 React Server Components 的看法:方向对了,代价被低估了

    RSC 解决的是真问题,但它给心智模型和生态带来的撕裂,比宣传里说的大得多。

  • 什么是 JavaScript 的调用栈

    JavaScript 引擎正是利用栈的这种结构来管理执行上下文的。在执行上下文创建好后,JavaScript 引擎会将执行上下文压入栈中,通常把这种用来管理执行上下文的栈称为执行上下文栈,又称调用栈。

  • HTTP 详解

    HTTP(Hypertext Transfer Protocol)是一种用于在网络上传输超文本数据的协议。它是一种客户端 - 服务器协议,客户端发送请求,服务器返回响应。HTTP 是 Web 的基础,