Rust の利点

Rust の主な特長:

  • コンパイル時のメモリ安全性 - メモリバグの大きな分類全体を コンパイル時に防止できる

    • 未初期化変数がない。
    • 二重解放がない。
    • 解放後使用がない。
    • NULL ポインタがない。
    • ロック解除し忘れたミューテックスがない。
    • スレッド間のデータ競合がない。
    • イテレータの無効化がない。
  • 未定義の実行時動作がない - Rust の文が何をするかが未規定のままに なることは決してない

    • 配列アクセスでは境界チェックが行われる。
    • 整数オーバーフローは定義されている(panic またはラップアラウンド)。
  • モダンな言語機能 - より高水準な言語と同等の表現力と使いやすさを 備えている

    • 列挙型とパターンマッチング。
    • ジェネリクス。
    • オーバーヘッドのない FFI。
    • ゼロコスト抽象化。
    • 優れたコンパイラエラー。
    • 組み込みの依存関係マネージャー。
    • テストの組み込みサポート。
    • 優れた Language Server Protocol サポート。

ここにはあまり時間をかけないでください。これらの点はすべて、後でさらに詳しく 扱います。

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

  • C または C++ の経験がある場合: Rust は borrow checker によって、 実行時エラー の大きな分類全体を排除します。C や C++ のような性能を 得られますが、メモリ安全性の問題はありません。さらに、パターンマッチングや 組み込みの依存関係管理のような構文を備えたモダンな言語でもあります。

  • Java, Go, Python, JavaScript… の経験がある場合: それらの言語と同じ メモリ安全性に加えて、同様の高水準言語らしい感覚を得られます。さらに、 C や C++ のように高速で予測可能な性能(ガーベジコレクタなし)と、 低レベルのハードウェアへのアクセスも得られます(必要であれば)。