Rustのメリット

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

  • コンパイル時のメモリ安全性 - クラス全体のメモリのバグをコンパイル時に防止します。

    • 未初期化の変数がない。
    • 二重解放が起きない。
    • 解放済みメモリ使用(use-after-free)がない。
    • NULL(ヌル)ポインタがない。
    • ミューテックス(mutex)のロックの解除忘れがない。
    • スレッド間でデータ競合しない。
    • イテレータが無効化されない。
  • 未定義のランタイム動作がない - Rust ステートメントで行われる処理が未規定のまま残ることはありません。

    • 配列へのアクセスには境界チェックが行われる。
    • Integer overflow is defined (panic or wrap-around).
  • 最新の言語機能 - 高水準言語に匹敵する表現力があり、人間が使いやすい機能を備えています。

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

ここにはあまり時間をかけないでください。これらのポイントについては、後ほど詳しく説明します。

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

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

  • Experience with Java, Go, Python, JavaScript...: You get the same memory safety as in those languages, plus a similar high-level language feeling. In addition you get fast and predictable performance like C and C++ (no garbage collector) as well as access to low-level hardware (should you need it).