Rust 的优势

Rust 有一些独特的卖点:

  • 编译时内存安全:在编译时可防止所有类内存 bug

    • 不存在未初始化的变量。
    • 不存在“双重释放”。
    • 不存在“释放后使用”。
    • 不存在 NULL 指针。
    • 不存在被遗忘的互斥锁。
    • 不存在线程之间的数据竞争。
    • 不存在迭代器失效。
  • 没有未定义的运行时行为:每个 Rust 语句的行为都有明确定义

    • 数组访问有边界检查。
    • 整数溢出有明确定义(panic 或回绕)。
  • 现代语言功能:具有与高级语言一样丰富且人性化的表达能力

    • 枚举和模式匹配。
    • 泛型。
    • 无额外开销的外部函数接口(FFI)。
    • 零成本抽象。
    • 强大的编译器错误提示。
    • 内置依赖管理器。
    • 对测试的内置支持。
    • 优秀的语言服务协议(Language Server Protocol)支持。
This slide should take about 3 minutes.

不用在这里占用过多时间。所有这些要点均会在后面进行详细讲解。

应该问问学生们都使用过哪些语言。根据答案侧重讲解 Rust 的不同特性:

  • 使用过 C 或 C++:Rust 利用借用检查消除了一类 运行时错误 。你可以达到堪比 C 和 C++ 的性能,而没有内存不安全的问题。并且你还可以得到些现代的语言构造,比如模式匹配和内置依赖管理。

  • 使用过 Java、Go、Python、JavaScript……:你可以得到和这些语言相同的内存安全特性,并拥有类似的使用高级语言的感受。同时你可以得到类似 C 和 C++ 的高速且可预测的执行性能(无垃圾回收机制),以及在需要时对底层硬件的访问。