動かして学ぶ! Rust 入門
ウゴカシテマナブ ラストニュウモン
- 著者:
- mebiusbox(メビウスボックス)
- 出版社:
- 翔泳社
- 出版日:
- 2023年04月24日
- ISBN:
- 9784798177236
- シリーズ:
- NEXT ONE
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
技書の森解説
Rust に初めて触れるプログラマーが、サンプルを手元で動かしながら、言語の概要と開発環境、基本的な文法と機能、簡単なアプリケーション開発までを一冊で通すための入門書です。『動かして学ぶ! Rust 入門』は mebiusbox 著、翔泳社の NEXT ONE シリーズから 2023 年 4 月に刊行されました (書店発売日は 2023 年 4 月 24 日)。版元の紹介によれば、エンジニアのための情報共有コミュニティ Zenn で公開されている「Rust 入門」を元にした書籍で、副題は「基本的な文法・機能から簡単なアプリの開発手法までしっかり学べる」です。
全 4 章と付録の構成、文法と機能の章が中心
目次は Chapter 1「Rust」、Chapter 2「環境構築」、Chapter 3「Rust の文法と機能」、Chapter 4「アプリケーションの開発」と Appendix で構成されています。Chapter 1 は Rust の特徴や誕生、エディション、互換性を扱います。Chapter 2 には PowerShell のバージョン確認、winget、Windows Terminal といった項目が並び、そこから rustup、cargo、rustc の導入、Visual Studio Code と rust-analyzer、Rust Playground、Hello, World! へ進むため、Windows での環境づくりを軸にした章と読めます。節の数が最も多いのは Chapter 3 で、01「基本」から 31「まとめ」まで、構造体と列挙型、クロージャ、制御構文、ジェネリクス、パターンマッチング、エラー処理、ライフタイム、トレイト、動的ディスパッチ、内部可変性、並列処理、イテレーター、コレクション、Cargo、モジュール、テスト、ドキュメントコメント、rustfmt と clippy、マクロ、非同期処理、unsafe までを一続きに取り上げます。Appendix では Option 型、Result 型、Vec 型、String 型、HashMap 型、Iterator トレイト、std::f64 モジュールを標準ライブラリの側から整理し、最後に「Rust をビルドしてみよう」が置かれています。
所有権と借用チェックが入門の山になる理由
Rust が他の言語から来た人を最初に戸惑わせるのは、所有権と借用 の規則です。Java や Python のように実行時の ガベージコレクション に後始末を任せるのでも、C のように解放を書き手の注意力に委ねるのでもなく、値の持ち主と貸し出しの範囲をコンパイル時に検査することで、解放忘れや二重解放、解放済み領域への参照を防ぎます。代わりに、他の言語では通るコードが借用チェックで止められる場面が増え、そこで手が止まりがちです。本書の目次では、所有権は 01「基本」の中で参照や可変性、借用チェックと並んで最初に登場し、10 の RAII で Box 型や Rc 型、11 でライフタイム、14 の内部可変性で RefCell 型や Weak 型を扱ったあと、16「所有権」と 17「所有型と参照型」で改めて独立した節として取り上げられます。早い段階で規則に触れ、ヒープの扱いや共有の仕組みを見たうえで所有権へ戻ってくる並びは、一度で理解しきれない概念を段階的に固める意図と読めます。トレイト についても、Copy トレイト、Deref と Drop、Send と Sync、Default といった具体的なトレイトが文法の各所に現れるため、抽象的な定義だけでなく使われ方から理解を積み上げられます。
単語推理ゲームとレイトレーシングで仕上げる Chapter 4
アプリケーションの開発は Chapter 4 にまとまっています。1 本目の単語推理ゲームは、単語辞書の読み込み、ゲーム構造体、推理ロジックの実装を経て、iced クレートによる GUI の実装まで進みます。2 本目のレイトレーシングは、画像の出力から始めてベクトル、クォータニオン、カメラ、球体と法線、アンチエイリアシング、拡散反射、材質、鏡面反射、屈折、テクスチャ、発光、コーネルボックスと要素を足していき、モンテカルロレイトレーシングに至ります。著者プロフィールにはコンピュータグラフィックスの記事を公開していることが書かれており、この題材の選び方にもそれが表れています。文法の章で学んだ構造体やトレイト、モジュール化が、一つの描画プログラムの中でどう組み合わさるかを確かめられる点が、文法解説だけで終わる入門書との違いです。
Rust に初めて触れるプログラマーに向く理由と、別の本が合う場面
版元が示す対象読者は Rust に初めて触れるプログラマーです。変数や関数、制御構文を何らかの言語で書いた経験があると、Chapter 3 の項目を他の言語との違いとして読み進めやすくなります。逆に、プログラミングそのものが初めての人には前提が足りない場面が多いはずです。また Chapter 2 の環境づくりは Windows の道具立てが中心と読めるため、macOS や Linux で学ぶ人は自分の環境向けの手順を補う必要があります。目次には Web アプリケーションのフレームワークやデータベース接続を扱う節は見当たらないので、業務の Web 開発に Rust を使う手順を求める場合は、本書で文法を固めたあとに専門書や公式の解説書 The Rust Programming Language へ進む流れが合います。
文法の項目を一つずつサンプルで確かめ、最後に GUI のゲームとレイトレーシングの描画プログラムを自分の手で組み上げたい人にとって、本書は Rust の全体像と手触りを一冊で得られる選択肢です。所有権で一度つまずいた経験がある人も、規則に何度も立ち返る構成の中で、もう一度通して学び直す足場として使えます。