この本について

「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の素晴らしさを一つずつ見ていこう.