おれがプログラマって人種を尊敬するただ一つの理由

(いやホントは一つってことはなくたくさんあるんだけど)おれがプログラマって人種を尊敬するただ一つの理由といえば、これはもう「にわとりたまご問題」てきな現象を不可解だなんだと文句いわずに、それが効率的ならばそれを使って結果に結びつけるところと言える。
たとえばman manである。manコマンドの使い方を知るのにmanコマンドを使うなんていうことが本質的に間違っているだとかなんだとか言うのは効率的じゃない。それが必要であればそうする。
あるいは再帰関数。自分で自分を呼ぶという考えを思いついたプログラマ、そしてその効率を理解し利用しつづけるプログラマはすごい。
またあるいは(昔懐かしいけど)COREWARS。プログラム同士が、メモリ上で戦うゲーム。そこではデータもプログラムも等価*1であり、そのことはやはりにわとりたまご的な構図を思い起こさせる。
自身を複製して生存率を高める方法や、相手のプログラムを取り込むやり方、自分自身を書き換えるなんてことすらする。自分を書き換えるだなんて、フランキーかブラックジャックの自分手術か、はたまたノイラートの舟かよっていう。なんつーか、すごい。



なんだろう。
もうちょっと言うと、たとえば再帰の力というのは前向きにも後ろ向きにも使える。陳腐なロボットSF的視点で言うと、自分が自分という存在を規定するのに再帰的視点に落ち込むと無限後退して自滅する。でも、これが結果を出すために動く再帰関数ってやつは値を返すために再帰をする。ニュアンス的な言い方で失礼だけれども、前向きな再帰処理なんだな。
そしてプログラマって人種はそういう技をこともなげに使い倒す。
やっぱすごいわ。このひとたちは。

*1:というか生命も勝利条件も陣地もすべてが等価というか