子供のころからプログラミングを続けているためか、人一倍「プログラマー」というものに誇りを持っている。
もはや、プログラミングはライフスタイルである。すべての事象をプログラムされたものという観点から見てしまう癖がついている。この「プログラムされたもの」というのは「アルゴリズムが存在する」と言っても良い。これは、すなわち、物事には必ず背後に何らかの仕組みが存在するということであり、それを解き明かし、理解し、発展させるという考え方がそのまま私の生き方になっている。
そのプログラマーというものがライフスタイルとなると、当然(?)行き着く先は「自給自足」である。
「自給自足プログラマー」というのは私の趣味である。それの意味するところは「できる限り全てを自分の手でプログラムする」というものである。実際には、OSが言語が提供している基本的なAPIやライブラリを除いて、後はすべて自作するということである。さらに、たとえ提供されていても、あえて自作するというのも含む。こういうことを言うとすぐに「車輪の再発明」云々という人がいるが、それはここでは筋違いである。ここでは、車輪の再発明をすることに意義があるのだ。家庭菜園や日曜大工と同じだ。自分で作ってみて初めてわかるという感動を追求するという生き方なのである。
具体的には以下のような状況だ。
残念ながらOSやツール(コンパイラなど)は作れないので、既存のものを使う。(もちろんそれらを作るのも楽しい。DOSの時代は自作Windowsマネージャを作ったし、独自インタプリタは今も作ってる。)
OSそのものを作れなくてもパーツは作れる。独自GCや、文字列操作などなど。
PC98のころはアセンブラをラップしたマクロを作った。
これは基本的に自作する。これぞ「自給自足」の真価である。フレームワークが設計・実装できなくて、一流の「自給自足」プログラマとはいえない。
自分の手に負えないもの、たとえば、SSLライブラリ、画像ライブラリなどは利用する。Libjpeg、Libpng、CxImage等。これらは一番チャレンジングなところだ。これらも全て作る能力があれば...。
これも自作。UIは一番気をつけているところで、ソフトの「顔」である。ここは一番独自性を発揮できる場所である。