~/VibeHandbook
$39

编程语言

rust-lang.org

Rust

是什么

Rust 是一种静态类型的编译型系统级语言,专注于在没有垃圾回收器的情况下实现内存安全。它的所有权与借用模型能在编译期保证你不会遇到数据竞争或释放后使用(use-after-free)的 bug——以远少于 C 的隐患代价,提供 C 级别的性能。

优势

  • 内存安全和线程安全在编译期得到保障,无需 GC。
  • 性能与 C 和 C++ 相当。
  • 丰富的类型系统、模式匹配,以及一流的包管理器(Cargo)。
  • 出色的编译器错误信息,能解释哪里出了问题以及如何修复。

权衡取舍

  • 学习曲线陡峭——borrow checker 需要花真正的时间去消化。
  • 编写速度比高级语言慢,编译时间也更长。
  • 对于简单脚本或快速原型而言,杀鸡用牛刀。
  • 异步 Rust 和大量使用生命周期的泛型代码可能变得相当错综复杂。

何时选用

当性能、可靠性和资源控制需要同时兼顾时,就该选用 Rust:系统软件、游戏引擎、命令行工具、WebAssembly、嵌入式,或性能关键的服务。对于一次性脚本来说它并不合适,因为那种场景下的安全保障不值得付出额外的摩擦成本。

与 vibe coding 的契合度

AI 助手能生成看似合理的 Rust 代码,但 borrow checker 才是真正的裁判——你应当预期会把编译器错误粘贴回去并反复迭代,这种方式效果很好,因为 Rust 的诊断信息精确,模型可以据此行动。指挥 AI 用 Result? 来处理错误,倾向于使用拥有所有权的类型或清晰的借用,而不是去和生命周期较劲,并要求它明确地建议 crate(连同 Cargo.toml 条目)。要求它写 cargo test 用例,以便你能验证安全性和行为。当模型提出 unsafe 时,要质疑它,先要求一个安全的替代方案。

fn main() {
    let nums = vec![3, 1, 4, 1, 5, 9, 2, 6];
    let sum: i32 = nums.iter().filter(|&&n| n % 2 == 0).sum();
    println!("Sum of evens: {sum}");
}