「写経」で学ぶRust日記:その1
お疲れ様です。Y研究員です。「写経」をしながら「プログラミングRust第2版」を読んでいます。今日は第一回目です。Rustのイメージキャラが蟹なので、しばらくは蟹画像で行きたいと思います。さっそく美味しそうな写真を見つけたので使ってみました。
環境構築もしてみた
「写経」をする前に開発環境もつくりました。ゴテゴテしたIDEが苦手なので、Vimに最低限の静的解析ツールなどを設定しました(rust.vim)。
「写経」して少し変えてみるをやった
第2章です。Mandelbrotを描いてPNGに保存するサンプルプログラムを「写経」しました。GitHubにMandelbrotだけ別なレポジトリがありました。最初のブランチはシングルスレッドです。本には載ってない何パターンかの並行処理で書かれたブランチもありました。
まずはシングルスレッドを「写経」して、次の段階「少し変えてみる」をやりました。改造したのは主に3点です。
画像名やサイズなどのデフォルト値を設定
u8の乱数でグレースケール画像を作成して保存
画像を保存する関数を拡張して、RGBのu8乱数画像を保存
改造はChatGPT-4に頼った
簡単な改造でしたが見当もつかないので、LLMに頼りました。ただし、無条件に頼むと今の状態から離れすぎるので、そこは気をつけました。今動いている部分を与えつつ、どのように変えるのか指示しました。例えば画像を保存する関数をRGBに対応させる、などです。
分かったこと
型の変換はintoやfrom、imageクレートはバージョンが新しいとColorTypeがExtendedになっているなどが分かりました。まだまだ先は長そうです。次回は並列プログラミングをしてみます。生成する画像サイズが4Kにもなると完了までに時間がかかりました。そのあたりが早くなると良いと思います。
そういえば蟹の旬は冬ですね。冬までにはRustがなんとか書けるようになっていれば良いかなと思いました。それではまた。