Shin x Blog

PHPをメインにWebシステムを開発してます。Webシステム開発チームの技術サポートも行っています。

リンクの冒険と Rust

年始から本業やら原稿書きやらとタスクがあり、さらに休日もコロナ禍で家にこもっていたので完全な休日というのがあまり無かった*1。そろそろ落ち着いて来たので、GW は 10 連休にして、やらなければいけないタスクはできるだけ作るらずに過ごすようにした。

とはいえ、初日はまだ仕事の延長というか、ホビープロジェクトのサーバサイドを PHP 8 に変更するという趣味だけど仕事にもフィードバックできる内容で過ごしていた。まあこれはこれでやりたかったことではあるが、今ひとつ日常と変わっていない。

通常の休日もそうなのだが、時間があるから何かしようとすると、ついついその意義や目的を考えてしまい、さらにその効果、効用をイメージしてプラスがあると判断してやることを選択してしまう。もちろん、これは良いことなのだろうけど、いつもいつもそうして行動すると今現在考えられる範囲で役立つことに注力してしまいがちだし、どうしても仕事の延長線上になってしまう。特にやるべきタスクが溜まっている時は少しでもそれを減らしたくて関連することをやってしまいがちになる。

いやあ違うと思い、GW は、最近やっていなかったコンソールゲームをすることにした。今は特にやりたいゲームがあるわけでもなく、正直あまり興味も湧いてなかった(興味を持つ余裕が無かったのかもしれない)が、何気に家にあるミニファミコンで「リンクの冒険」をやってみることにした。リンクの冒険は子供の頃ディスクシステムで夢中になったゲームの一つだ。ミニファミコンを買った時も何度もクリアした。収録されたゲームの中では一番やったゲームだった。リンクの冒険の楽しさは操作感とちょうど良いくらいのボリューム感だ。軽くクリアするかと思いつつ、やりはじめると意外に上手く進めずに何時間か夢中になって遊ぶことになった。いやあ面白い。何の役に立つかとか考えずに遊ぶのは楽しいという当たり前のことを思い出した時間だった。

そんな感じで過ごしていると、そういえば Rust で JSON パーサを書いていたのが途中になっていたのを思い出した。実はその前に一度 Rust で JSON パーサを書いていたのだが、その後に PHP 8 で JSON パーサを書いて、仕様の不備などに気付いたのでまた 1 から書き直していたのが年始ごろ。その後は仕事に直接関連があるわけではないので放置したままになっていた。この GW は役立つとか気にせずに過ごすことにしたので、Rust を思い出しながら続きを書くことにした。いやあ、Rust は面白い。まだまだ知らないことだらけなので Rust By Example などのチュートリアルをやるたびに発見がある。自分が日頃書く Web アプリケーションなら、PHP や Go のようにある程度慣れている言語で書いた方が手っ取り早い。でも、そういうことじゃなくて、コードを書くことに慣れる、書き方を覚えていく楽しさがある。ゲームでキャラクターを操作するようにコードを書いていく楽しさを感じられた。

github.com

プログラミングはあくまで目的を実現するための手段でしかない、という意見がある。私もそれには同意で、何か解決したい問題があったり、達成したい目的があって、それを実現するための手段の一つであるとは考えている。ただ、それもコンテキストによる。特にプライベートでは、プログラミングを、いや、ただコードを書いたり、コードを読んだりが目的であっても構わない。ただそれを楽しむ時があっても良い。

明日からまた日常に戻っていく。気づけばタスクが積み上がってきたので、またそれをこなしていく日々になるだろう。プログラミングは仕事でやっている分、プライベートで書く時もどうしても仕事の時の感覚で目的指向で考えてしまう。ただ、時にはそれを一旦横に置いて、ただゲームをするように楽しむことを忘れないようにしたい。

*1:外出すると強制的にタスクから離れられるという効果をあらためて実感する