Comparison

    • Manual like C:
      • No runtime overhead.
    • Automatic like Java:
      • Fully automatic.
      • Safe and correct.
    • Scope-based like C++:
      • No runtime overhead.
    • Compiler-enforced scope-based like Rust:
      • Enforced by compiler.
      • No runtime overhead.
      • Safe and correct.

    • Manual like C:
      • Use-after-free.
      • Double-frees.
    • Automatic like Java:
      • Garbage collection pauses.
      • Destructor delays.
    • Scope-based like C++:
      • Complex, opt-in by programmer.
      • Potential for use-after-free.
    • Compiler-enforced and scope-based like Rust:
      • Some upfront complexity.