← 全部文章

嵌入式小公司要不要认真看 Rust:一个老兵的思考

先声明:我不是 Rust 老手。 我做了十几年嵌入式 C/C++,Rust 我还在学,也没在团队里真正把它推成过。但我越来越确信它是趋势。

所以这篇不是实战总结,是一个嵌入式老兵 / 学习者的思考。有一点我很清楚:在小公司里推 Rust,技术对不对是一回事,推不推得动是另一回事。

先说结论:别"推",要"种"

把"推 Rust"当运动打,必输;当种子种,才有戏。

  • 不搞"全量替换/技术革命"——那会瞬间树敌、还伤交付;
  • 只在新模块 / 新服务 / 工具上落子(增量、边界清晰、低风险);
  • 拿一个团队真痛点开刀,用结果说话,而不是用道理吵架。

一、优点:Rust 到底强在哪

对嵌入式,它赢在运行时,而不是花哨的语法:

维度说明
内存安全无 GC、无解释器,编译期就消掉越界 / UAF / 数据竞争——正是固件"深夜崩溃"的常客
运行时轻精心的服务 RSS 常在几 MB,接近 C(远低于 Python / Go 的 runtime)
并发安全Send / Sync 把"多线程用错"变成编不过
部署简单静态编译、单二进制,交叉编译到 *-musl 直接扔进设备
维护成本低编译器兜底,敢重构;老代码的"接手恐惧"小很多

一句话:它把一部分"运行时的隐患"提前到了"编译期"。

二、必要性:为什么是"现在"

  • 嵌入式代码越来越复杂(联网 / OTA / 多线程 / 协议栈),纯手工内存管理的风险在累积;
  • 安全与合规压力上升(客户审计、CVE),"能跑就行"的年代在退场;
  • 上游在转:Linux 内核、Android、Windows 都在引入 Rust → 生态在成熟;
  • 人:老工程师会退,新人更愿意学现代语言——储备 Rust 就是储备招人竞争力。

三、现实困难:小公司的"特殊难度"

我不想美化,这些都是真会拦你的:

  • 没人会:学习期生产力先掉,而小公司最扛不住交付延期;
  • 招人难:会 Rust 的少;
  • 存量与流程:现有 C 代码、构建、CI、调试链(嵌入式 gdb + Rust 还不算顺)都要重来;
  • 收益隐形:"没出 bug"是看不见的功劳,最难说服;
  • 抗风险低:一次踩坑,团队就"以后再也不用"。

四、解决方案:一套能落地的打法

  1. 只做增量:新模块 / 新工具,不碰能跑的存量;
  1. 缝里塞:Rust 写库、只暴露 C ABI(extern "C")给老代码调,边界清晰;
  1. 先治真痛:挑那个反复出内存/并发 bug或"用 Python 分发到设备很痛"的点,重写一小块,用数据讲话(崩溃数、内存、性能、交付速度);
  1. 第一枪要小、要亮:选一个独立、低风险、能自己闭环的项目(一个协议解析器 / CLI / 设备瘦服务),成功小而扎实;
  1. 降门槛:脚手架 + CI 模板 + 交叉编译脚本 + no_std 起步模板;做一次分享、结对写;
  1. 管理预期:承认编译慢、学习期慢;把 Rust 定位成"特定场景更优",不是取代一切。

关键词:增量、真痛点、小胜、拿结果。不是"Rust 更好,我们换吧"——那没人爱听。

五、一点哲学:安全该靠约束,不是自律

这是我推 Rust 更深的理由:

  • 在 C 里,"正确"靠人的纪律——靠 code review、靠老工程师的经验、靠运气;在 Rust 里,"正确"是默认——你故意写错才错。把纪律交给类型系统,才是能规模化的安全。
  • 真正的成本从来不是"写代码",而是"维护 + 出事"。Rust 把成本从运行时的凌晨电话,前移成编译期的红色报错——用小公司付得起的开销,换掉付不起的负债。
  • 推技术不是技术问题,是"社会问题":所以要用增量 + 事实,而不是辩论——人只信自己看到的。
  • 理想要有落脚点:不是靠说服别人,是靠"自己在用它做出东西"。你个人项目先把 Rust 用起来,你就是团队的活样板。

收尾

在嵌入式小公司推 Rust,我的结论就一句:

别推,种。选一个小而真的痛点,用增量落一子,拿结果说话。

Rust 是理想,但理想不该丢,也不该硬塞——留住它,落地在你手里。

💬 你觉得这条路对么?你也看好 Rust 吗?在下方评论,或到 GitHub 提 Issue 聊聊。

(本文中英双语。)

评论 0

还没有评论,来抢沙发~

登录 登录后即可参与评论