こんにちは、 @kz_morita です。
今回は、自転車本と言われている「実践Rust入門 言語仕様から開発手法まで」 を読んだのでその感想を書いていこうと思います。
実践Rust入門 言語仕様から開発手法まで目次
目次は以下のような感じです。
- 第1章 Rustの特徴
- 第2章 はじめてのRustプログラム
- 第3章 クイックツアー
- 第4章 プリミティブ型
- 第5章 ユーザー定義型
- 第6章 基本構文
- 第7章 所有権システム
- 第8章 トレイトとポリモーフィズム
- 第9章 パーサを作る
- 第10章 パッケージを作る
- 第11章 Webアプリケーション・データベース接続
- 第12章 FFI
最初に、環境の構築と簡単なプログラムを紹介して、次に基本的な文法などから、所有権・トレイト・ライフタイムなどのRust のコアな部分までの解説があります。 最後に、パーサ、Webアプリケーション、FFIという実践的な内容に触れるといった順番で書かれていました。
感想など
この書籍では、最初にRustの起源から始まり、実用的なアプリケーションの例まで一通り記されていました。
最初に Rust を触ったときに何か Swift に似ていると感じたのですが、Rust 開発者の Hoare 氏が Apple でSwift を開発しているということをこの書籍で知って、なるほどなぁと思ったのが印象的でした。
そして書籍全体の中でもなんといっても一番面白かったのは、7章と8章です。
Rustの醍醐味である、所有権システムの仕組みはやはり魅力的に感じました。
コンパイラが、メモリ安全性を担保するという思想はとても魅力的だし、それを実現する仕組みも本当にすごいなと感じました。
はじめはむずかしいなと感じたのですが、前職で C++ を書いてたおかげでなんとか理解できた気がしてます。(ムーブセマンティクスとかあったので)
所有権に関しては、以下の記事でもまとめてありますので、よかったら見てみてください。
ライフタイムについても、以下の記事でまとめました。
そして、その次の parser を作る以降の章では、実際にコードの作り方や Rust の作法みたいなところを学ぶことができたのがとても良かったです。 書いていて驚いたのは、cargo を始めとするエコシステムが整っているのは非常によいなぁということと、コンパイルエラーのメッセージがとても丁寧でわかりやすいということでした。
エコシステムに関しては、インストールはコマンド一発ですし、Rust自体のバージョンアップも rustup で一発でできたり、cargo で便利な crate が簡単に使えるところはさすがだなぁと思いました。
また、Rustに触れる前は、ひたすらコンパイルエラーと戦う言語というイメージだったのですが(いまでも戦っていますが)、そのコンパイルエラーがとても丁寧だったのは驚きました。
個人的な趣向として、静的型付け言語が好きでその理由が、コンパイラにできるだけチェックを任せたいっていう考えがあるからなのですが、Rustはまさにこの思考にマッチしていて書きごごちが良かったです。
書籍を読んでとりあえず、コードがかけるという状態にはなっているはずなので、色々継続して書いていきたいと思ってます。
Amazonのレビューで「初心者向けではない」などと書かれていたため買う前は多少不安でしたが、この本で入門してよかったと思える一冊でした。
Rustを始めたいという方にはおすすめしたい本です。
実践Rust入門 言語仕様から開発手法まで