Wonderfull Rust

はじめに

この本について

「Wonderfull Rust」は「Bitterless Rust」の続編にあたる.

Bitterless Rust では,Rust の「苦い」部分を意図的に省略し,語弊だらけの説明で「とりあえず動くコードが書ける」ことを目標にした.所有権,ライフタイム,トレイト,マクロ,unsafe — これらはすべて「後で学べばいい」として切り捨てた.

この本では,その「後で」に正面から向き合う.

ただし,The Book のように体系的にすべてを網羅するわけではない.この本の目的は Rust の何が素晴らしいのかを,概念的に正確に理解する ことにある.Rust がなぜこのように設計されているのか,その設計思想のどこが優れているのかを,一つひとつ掘り下げていく.

この本で扱うこと

  1. 式ベースのプログラミング — ML 系言語に由来する式指向の設計と Unit 型
  2. 型システム — Hindley-Milner 型推論,ジェネリクス,GATs
  3. Unit と trait impl による抽象化 — Unit 型の深掘り,ビルトイン機能の一般化と,ユーザー定義型への拡張
  4. 借用チェッカー — 所有権,ライフタイム,並行性の安全保証
  5. モジュールシステム — 可視性制御と use 構文の合理性
  6. マクロ — 宣言的マクロと手続き的マクロによるメタプログラミング
  7. パフォーマンス — ゼロコスト抽象化と LLVM バックエンドがもたらす実行性能
  8. メモリレベルのプログラミング — unsafe,ベアメタル,ローレベルの世界
  9. ツールのオールインワン — Cargo を中心としたエコシステムの統一性
  10. クロスビルド — WebAssembly や napi-rs を含むクロスコンパイルの世界
  11. ドキュメンテーション — rustdoc とドキュメントテストの統合

前提知識

Bitterless Rust を読了しているか,それと同等の Rust の基礎知識を持っていることを前提とする.具体的には,以下を理解している必要がある:

  • let, fn, struct, enum, impl の基本的な使い方
  • match によるパターンマッチング
  • Vec, String, Option, Result の基本的な使い方
  • cargo run, cargo build の基本操作

また,この本は「Rust の設計思想の何が優れているか」を解説するものなので,他のプログラミング言語(C, C++, Java, TypeScript, Python など)の経験がある方がより深く理解できる.

表記について

この本では Bitterless Rust と異なり,語弊のない正確な説明を心がける.概念の正確性を重視するため,必要に応じて理論的な背景にも触れる.ただし,学術的な厳密さよりも「概念的な正確さ」を優先する場面もある.

それでは,Rust の素晴らしさを一つずつ見ていこう.

関連コンテンツ

本に戻る