「実践Rustプログラミング入門」を読んだ

Rustを勉強しようと思い本を探しはじめたのがだいたい1年前、この本の出版されたころでした。なんやかんやあって積まれたこの本を読んだのは世間的にもRustの評価が高まってきた今頃となってしまい、もっとはやく知っておけば今ごろRustのスキルももっとついていたろうになあと思うばかりです。

本書はRustの入門書ということになっていますが、あまり親切な部類の入門書ではありませんでした。

入門書としてRustのコンセプトや簡単な言語仕様、コンパイラなどのインストール方法から解説されてはいますが、大変に広く浅く解説されているので、プログラミングに慣れた人でないと理解は難しいかと思いました。広く解説しているため、多くのバックグラウンド知識がないとコンテキストが理解できず、Rustの理解とコンテキストの理解を同時に行わなければならない範囲が多いためです。実践中にコードの意図は説明されてもあまりコード自体の内容は説明されないので、Rustのリファレンスを見ながら見ていくようになります。丁寧に説明されたいという人には厳しいでしょう。

ただ、その分とりあえずRustでできることに触れてみたいという範囲は広くサポートされています。CLIアプリケーション、Webアプリケーション、WebAssembly、ローカルGUIアプリケーション、組み込みプログラミングとRustを使ってやりたいと思われる活用範囲に一通り触れていると思います。

発売されて1年ほどですが、エラッタにも載ってない内容で記載コードが実行不能だったり、誤字があったりします。エラッタページにあるソースコードを見ればわかりますが外部ライブラリに関するものだったりもしましたので難しいところです。 cargo add xxx だけでなく全てバージョンは書いておいたほうが良かったように思われます。

実例としては、Section5で本の説明通りにするとpanic が発生してアプリケーションが実行できなくなるこのような問題が発生したりします。

stackoverflow.com

僕のバックグラウンド的な問題があったと思いますが、WebAssemblyとunsafeに関する説明は特に理解が難しかったです。今後の実践から理解を深めていきたいと思いました。

意外にも自分のバックグラウンドでは本格的に扱ったことはない組み込みプログラミング、マクロの解説は分かりやすかったです。他にもおもしろかった部分としてはWebアプリケションの章ではデプロイするための実用的なdockerイメージの作り方が説明されたり、cargo周辺ツールの紹介、 FFIによる多言語連携の実例、最後にはRustで仕事をするための説得法まで、Rustの入門書とはいったい…という感想を持ってしまいました。

ちょっととまどってしまう本書ではありますが広く触れさせてもらえたことで私はRustに大変興味をもちましたし、とりあえずはもうちょっと詳しい言語仕様などを知ったり、もっと本格的なWebアプリケーション例を知りたく、

www.rust-lang.org

www.oreilly.com

www.packtpub.com

このあたりの本を読もうと思いました。

前者の本は前版の和訳があるのですが、Rustは数年ごとにエディションという区切りのアップデートがあるポリシーに追従できていないので、原著を追いたいところです。原著も2021年に予定されてるアップデートにどの程度追従できてるのかは読んでみないと分かりません。

これらでRustにより自信をつけたら、WebAssemblyなどにより詳しくなって、自身の得意領域のwebでRustをもっと活かせるようになりたいですね。