对Rust的观察
Ianus Inferus
2026-05-24
最近使用Claude CLI等工具进行Rust vibe编程,产生了一些想法。
Rust相比C++/Go/Swift,优势很大。
语法上
- 解决了异常和返回
Result<T, Error>语法之间的矛盾- 使用?语法,避免了
if err==nil return err的问题(相对于Go/Swift) - 使用anyhow库,可以在返回Error时自动带代码栈(相对于C++/Go/Swift)
- 使用VSCode重构插件,解决了函数引入错误时修改函数签名需要传递修改的问题(相对于Go/Swift)
- 可以捕捉panic并恢复,适用于服务器程序(相对于Swift)
- 使用?语法,避免了
- 支持async/await
- 基于ownership的强制内存安全,比基于引用计数的共享指针安全,完全避免了循环引用
- 基于ownership的强制多线程锁(类似LockedVariable)
- 没有头文件
库上
- 网络栈完整,无需自行实现
- 包管理器,可以轻松引入第三方库,不用太考虑跨平台问题,不用配置很多宏,支持锁定文件,将库锁定在安全的版本
编译器上
- 支持大部分操作系统和CPU架构(包括一些路由器等嵌入式设备)
- 支持和C/C++链接到同一个程序或库
- Linux支持glibc和musl,支持静态musl
- 不需要CMake、Ninja等外部编译工具,只需要rustc
可能的劣势
- 似乎由于编译器检查多,编译速度比较慢
C++的遗留优势
- legacy code,但可用AI重写
- 无缝调用C
总结:Rust语法检查严格,适合AI使用,便于从其他语言重写。生态丰富,很容易引入别人已经实现的功能。