Benefits of Rust

Rustのユニークなセールスポイントをいくつか紹介します:

  • Compile time memory safety - whole classes of memory bugs are prevented at compile time

    • 未初期化の変数がない。
    • 二重解放が起きない。
    • 解放済みメモリ使用(use-after-free)がない。
    • NULL(ヌル)ポインタがない。
    • ミューテックス(mutex)のロックの解除忘れがない。
    • スレッド間でデータ競合しない。
    • イテレータが無効化されない。
  • No undefined runtime behavior - what a Rust statement does is never left unspecified

    • 配列へのアクセスには境界チェックが行われる。
    • Integer overflow is defined (panic or wrap-around).
  • Modern language features - as expressive and ergonomic as higher-level languages

    • 列挙型とパターンマッチング
    • ジェネリクス
    • オーバーヘッドのないFFI
    • ゼロコスト抽象化
    • 優秀なコンパイルエラー。
    • 組み込みの依存関係マネージャ。
    • 組み込みのテストサポート。
    • Language Server Protocol(LSP)のサポート。
This slide should take about 3 minutes.

Do not spend much time here. All of these points will be covered in more depth later.

受講者にどの言語の経験があるかを尋ねてください。回答に応じて、Rustのさまざまな特徴を強調することができます:

  • CまたはC++の経験がある場合: Rustは借用チェッカーを介して実行時エラーの一部を排除してくれます。それに加え、CやC++と同等のパフォーマンスを得ることができ、メモリ安全性の問題はありません。さらに、パターンマッチングや組み込みの依存関係管理などの構造要素を含む現代的な言語です。

  • Java、Go、Python、JavaScriptなどの経験がある場合: これらの言語と同様のメモリ安全性と、高水準言語に近い感覚を得ることができます。また、CやC++のように高速かつ予測可能なパフォーマンス(ガベージコレクタがない)を得ることができ、(必要なら)低水準なハードウェアへのアクセスも可能です