对于许多嵌入式系统开发人员而言,Rust 的崛起似乎掀起了一股不小的浪潮,特别是在相较于传统的 C/C++ 语言,Rust的“内存安全”优势让人眼前一亮。然而,是否可以将Rust作为C/C++的替代品?或者说,Rust是否真的比C/C++更好,抑或它只是一个“技能问题”呢?
在嵌入式开发的领域,我观察到,尽管Rust在一些高性能、内存安全敏感的场景中受到了广泛推崇,但它在实际应用中的普及度,特别是在嵌入式领域,依然有限。今天,我会从多个角度探讨这个问题,并且分享一些对于Rust、C/C++以及嵌入式系统开发的个人见解。
一、Rust的炒作与Java的历史对比
不少技术评论员和Rust的倡导者都热衷于将Rust与过去Java的火爆历史做对比。记得20多年前,大学课程中,嵌入式系统的C语言课程被Java所替代。当时,Java被认为是未来的语言,甚至开发了许多“奇特”的平台,比如在MCU上运行Java虚拟机(JVM)的项目。然而,历史证明,Java并不适用于所有领域,它在嵌入式系统中并没有立足,最终在智能手机编程等领域找到了适合的市场。类似的,“Rust热”有时也会被批评为一次过度炒作。即使Rust的优势不容忽视,是否它真的能取代C/C+&#