最近はRustの勉強をしています。世間で大流行しているし、新しい言語を勉強するのは好きだし、それぐらいのきっかけではじめたのですが、なかなかおもしろい言語だということで、マイブームになりつつあります。競技プログラミングの問題を解いたり、ちょっとしたスクリプトを書いたりするだけですが、けっこう楽しいです。そういうわけで、この記事では自分がRustをはじめるにあたって読んだ2冊を紹介したいと思います。
『Rustの練習帳 コマンドラインツールの作成を通してRustを学ぶ』
実はこの本を書店で見かけたのがRustをはじめる直接のきっかけだったりします。lsやgrepやfindなどのLinuxコマンドを実装して、Rustの基本的な文法やお作法、ライブラリ類やツール類の使い方を習得しようというコンセプトの本になります。自分はこういう手を動かす系の本が好みということもあり、かなり勉強になったという感覚があります。ただ題材がLinuxコマンドだけということもあり、写経中、やや冗長に感じる部分がありました。またRust学習者のモチベーションとして、借用やライフタイムなどのRust特有の概念を知りたいというものがあると思いますが、そういう小難し話題について、本書はほとんど言及がありません。
- プログラミングの経験はあるがRustは初歩的な文法すらわからない
- コンセプトは勉強したけど実際にどう手を動かしていったらいいのかわからない
- 細かいことは後回しにしてまずはRustを書いてみたい
そんな人に向けた1冊だと思います。
『コンセプトから理解するRust』
先述した本が実践系なら、本書は座学系の1冊です。型やトレイトや所有権を中心にRustに特有の概念を学ぼうというのが本書のコンセプトになります。ほかのプログラミング言語と比較したり、わかりやすい図やサンプルコードや図表を用意したりと、全体的に丁寧で説明はかなりわかりやすいです。少なくとも自分はRustのコア部分をかなり理解できた気でいます。Rust入門に必要な知識がぎゅっとつまっているといってよいのではないでしょうか。ただし実際にどう手を動かすのかといった点にはまったく触れられていません。それが本書のよいところ――すなわちそういった記載を省くことで、ページ数が減ってコンパクトになるというメリットもあるのですが、とはいえ「知識は得たが、では実際のアプリはどう作ればよいのか」というところについては、別のところで勉強する必要がありそうです。