GItHubにリポジトリを作ったよ!

学生時代の卒業制作中にマシンがクラッシュ。バックアップはフロッピーの断片データのみ。会社員時代にはマシンクラッシュは無かったが、マインドストームのプログラムが入ったノートPCを1台紛失。ノートPC無くしたことは2回。そして去年だったかレノボが故障。これもバックアップは肝になるソースのUSBメモリのみ。開発環境復旧はしなかった。

んで今のMacBookも基本的にディスクがいっぱいなのでマシン買い足さないとバックアップできない。

だから小規模なプロジェクトをGitHubにコミットしました。

きょうのファミべJavaはマリオがファイアボールを発射するまで。ファイアボールの画像がないのでシューティング用の弾を回転させて、進んで、バウンドするように。物理エンジンが非常に怪しいコードになって、ざざっと全部変数で書いてからクラスにまとめなおして色々とアレな部分のあるコードのままコミット。

C++Javaで流行ったいわゆるエレガントとコンテンツの充実とバイナリの大きさや実行速度は全部違う方向にプログラムを引張る。ふたつの思想を持っていると矛盾も生じる。

たとえば画像を反転させるのに反転前後にビットマップをふたつ持つとメモリが倍かかって、コードは増えない。同じ画像をプログラムで反転させるとデータにはメモリを食わないがコードは分量が増える。何をどういう目的でどう最適化するかの答えは常に複数ある。最近はマシンが速いので細かいことを気にしなくても書いたものが意図通りに動くので初心者に読みやすくしましょうってのが恐らくエレガントの出発点だ。ソリューションがエレガントに収まるとも限らないからな。

コードを書いて読み返すと自分の中で主義、思想、信条がまだ固まっていないのが分かる。読む人が読んだら「とてもひとりの人間が書いたとは思えない」と思うかもだ。