書籍概要
モチベーション
Erlangから呼び出せるNIFをRustで書きたいと思い、Rustの基本をさっと見直す為に読みました。 完全ガイドと銘打ち、基本的な文法や構文を包括的に理解できるとあったので、言語のアウトラインを掴めると思い選書しています。 また、現時点で比較的新しい書籍で、最新のRustの機能を学べるというのもポイントです。
読んでみての感想
読み終わっての感想は、Rustの基本的/標準的な使い方をわかりやすく理解でき、入門書としてとても良い本だと思いました。 翻訳本にありがちな、わかりにくい日本語表現もなく、ストレスなく読了できています。 写経と実験をしつつ読み終わるのに大体24時間程度でした。
なお、Cargoなどのツール、パッケージングといった、実際にRustを使って開発をする際に必要であろう情報はなく、より実践的なプログラミングや開発をする為には、本書以外の書籍やドキュメントを読む必要があると思います。 特に並行プログラミング、ネットワーク、テスト等のトピックは本書では扱われていないので、このあたりの知識を得る為には別の書籍を読む必要があります。
本書の翻訳前のタイトルが「Beginning Rust」だったので、おそらくそのあたりは割り切っているのだと思われます。 あくまでRustの基本を学ぶための本として考えておくのがよさそうです。
よかった点
サンプルコードが豊富で、読みながら写経することで、Rustの基本的な文法や構文を理解できました。 数は少ないですが、C++やCとの比較コードがあり、Rustの特徴をコードレベルで理解できるのが良かったです。 ただしCやC++の知識、メモリやポイント周辺の理解がないと、比較コードの意味がわからないので、そこは注意が必要です。
いまいちだった点
Rustの基本的な文法や構文を理解するには十分な内容でしたが、Rustの特徴的な機能や、コードを書く上でのポイント等はあまり書かれていないように感じました。 書籍の後半に出てくる、所有権と移動とコピー、借用とライフタイムといったRustの特徴的な機能は、かなりあっさりしていて、もう少し詳しく書かれていても良かったのではないかと思いました。 が、このあたりは入門書の性質上、あまり深く書かれていないのは致し方ないといったところです。
また、人によって好みが別れるところではありますが、サンプルコードがただのプリント文だけなので、内容的に味気なく感じました。 ハンズオンとまでは言わないのですが、もう少し面白いプログラムを書いて進めていくと、読み手のモチベーションが上がるのではないかと思いました。 自分は写経をしつつ、プログラムを改造して動作確認しながら読み進めるのが好きなのでストレスは無かったのですが、読むだけで理解しようとしている人は、途中で挫折しそうな気がします。
まとめ
Rustの基本的な文法や構文を理解するには十分な内容の書籍だと思います。 サンプルコードも豊富なので、写経しながら読み進めることで、Rustの基本を理解できました。 ただし、Rustの特徴的な機能や、Rustで開発をする上での必要になる情報はあまり書かれていないので、あくまで1冊目の基本を学ぶための本として考えておくのがよさそうです。 本書を読み終わったら2冊目なり実際に開発をするなりして、Rustの実践的な知識を得ましょう。