0xf

日記だよ

書籍「プログラミングRust」

ざっと読み終わった。Rustのコードは見様見真似で書いていたが、だいたい適当な理解をしていたことがわかった。

非常に面白かったが、読むのに休日使って3日かかっている。後半のいくつかの章は斜め読みで、マクロのとこは概ねすっ飛ばした。

非同期処理あたりからは外部クレートの話が多くて、紙面から読み取れる内容を飲み込むのに時間がかかった。内容自体が込み入ったあたりではあり、しかたがないが、後はいっぱい読み書きするしか道はないのも知っている。

フィーチャーがキャプチャする変数によって型が変わるとか、最初に`poll()`した時点で扱いが変わるなどは全然知らなくて「おお!」となった。作られた時点では実行されてないのでキャプチャされた変数の考慮がいらないの、理屈はわかるが言われないと思いつかなかった。こういうのが面白いよね。`Sized` や `Send`/ `Sync`といったマーカーの扱いも「コンパイル時のメモリ確保のために必要」とか「構造体がスレッド間で安全に共有できる場合だけ使えるようにするため」など説明があると納得感がある。

言語としては非常にスマートで美しいと思うんだけど「これをするためにはいろんなやり方がある。このクレートが有名だ」みたいなのが多いのは個人的に苦手なポイントではある。