yak shaving life

遠回りこそが最短の道

Rustプログラミング入門を読んだ

なぜ読もうと思ったか

諸事情により本を読むくらいしかできない時間が数時間あったので、何かRustの本を読んでみようと思い適当に手に取ってみた。

どのような本か

Rustの入門書です(そりゃそうだ)。

プログラミング初心者も対象読者として想定されている模様。

レビューというか感想

The bookを今やっている途中というのもあって、ある程度Rustの前提知識があったのでサクサク読めた。二時間くらいで全部読めた気がする。サクサク読める本は良い。

The bookとは結構順番が違っていて、プログラミング初心者でも読める構成を意識していると思われる。しかしそうすると4章の最初でポインタを理解する必要があり、初心者はポインタで躓く確率が99.9%であることが知られている*1ので、Rustの肝の部分にたどり着けないという問題がある気がする。しかしポインタの説明があるからこそ後でC/C++とRustの比較みたいなことができるわけなので、なかなか塩梅が難しいなと思った。本書くのって難しそう。

4章、5章でRustが何を解決しようとしているのかが説明されていて良い。具体的にはC/Java/PythonとRustとの比較がサンプルコードとともに示されていて、Rustがどういうアプローチをとっているのかが分かりやすかった。ダングリングポインタの話とかそういうやつです。

ただし、言語機能や標準ライブラリの説明はかなり少ないので、この本を読んだだけではRustが書けるようにはならない。4、5章を読んで「へーなるほどなー」となるのがこの本の価値だと思う。個人的には読んで良かったです。

…ところで、何気なくAmaz○nのレビューを見ていたら結構低評価がついていた。曰く、内容に誤りが多いとのこと。ふむ。

確かに誤字・脱字はかなり多くて気になったし、一部の用語の使い方があまり一般的ではなさそうだなーと思う部分もあったが、その辺は適当に流して読んだので自分としては支障はなかった。もうちょっと校閲頑張ってくれないかなとは思ったけど。

内容そのものについてはどうなんだろうか。レビューを読んでいると、C++の記述が正確でないとか書いてあるけど正直そこはそんなに気にならない。というかC++ワカラナイ…。

気になるのは、Rustの構造体のメモリレイアウト、Stringの構造、所有権の説明などが間違っているというレビューがあること。これに関してはまだRustについてよく分かってないので今のところ検証する術がない。うーむ。もし本当にこの辺が間違っているとしたらあまり人に勧めるのは良くないのかもしれないな…。何がどう間違ってるのかいまいちよく分からないので詳しい人誰か教えてくれないかなー。いや、自分がRustに詳しくなってもう一度この本を読んで検証するべきだろうな。うん、頑張ろう。頑張ります。

*1:知られていない