GEN MUTO'S HOMEPAGE > Cell_雀公式サイト > 不定期コラム

Cell_雀 不定期コラム 第十弾!
 
 
ウドの大木って本当なんだ…
 
 
 
 
 
 
 皆さんは、テレビ「トリビアの泉」をご存知ですか?
 


ドキドキCクラブ © GEN MUTO

 知らない人は、ほとんどいないと思うので説明はハショリますが、先週こんなことやってました。
 世界中のカブトムシを集めて闘わせたら、どのカブトムシが一番強いんだろうって。
 日本のカブトムシも出てましたが、よその国のカブトムシのデカイこと、デカイこと。
 圧倒的な体格差で行なわれたトーナメント戦、意外なことに日本のカブトムシが順調に勝ちあがっていっちゃいます!

 この様子をテレビで見ていた私は、こんなことを考えていました。
 「昆虫の動きってプログラムそのものじゃん…」
 モノの本で読んだことがありますが、昆虫くらい下等な生物になると、その動きは遺伝子にプログラムされた一連の動き(反応)によって行われる為、思考力はほとんどない。ということが書いてありました。
 例えば、ある昆虫は地面に穴を掘ってそこに卵を産んだ後、土をかけて卵を隠すのですが、産んだ卵を目の前で取り上げても律儀に土をかけて穴を埋めるそうです。
 これはつまり「土をかける=卵を隠すため」というロジックが、「卵がない=土をかけても無駄」という論理的な結論に帰結する…ということを、判断する思考力が昆虫にないことを示しています。(おバカじゃん…)
 ですので昆虫が、あらゆる場面でどんなにすばらしい反応を見せたとしても、基本的には全て遺伝子にプログラムされているアクションの範疇ということになります。
 (最近の研究では昆虫にも少し学習能力があることが分かってきたみたいです
  微小脳解析分野 : http://www.biology.tohoku.ac.jp/lab-www/microbrain/

 日本の小さなカブトムシがアジアやアメリカの巨大なカブトムシをナギ倒していくのを見るのは爽快でしたが、これをプログラムに置き換えてみるととても興味深いです。

 DOS全盛だった頃、OSそのものがフロッピィ一枚に入りきってしまい。このフロッピを持ってさえいれば、どのPCでもDOS環境が立ち上げられました。
 このころのソフトウェアといえば、フロッピィ一枚か二枚組み、多くても三〜四枚の中に納まっていました。
 (しかも三、四枚目のほとんどはデータディスクです)
 プログラムサイズもトータルでせいぜい一、二MB、そんな小さなプログラムでも、地球の隅々まで大航海したり、鉄道会社を経営したり、戦国の世を全国制覇したりすることに、事欠きませんでした(笑)。
 
 もっと以前になると、プログラムサイズはKBの単位です。
 昔の上司が持っていたポケコン(ポケットコンピュータ)はユーザーのプログラミング領域が数十KBしかなく、そこにターレット・パンチプレスの工数(作業にかかる時間)を算出する為のBASICのプログラムを組み込んで、見積書の作成等に利用していましたが、その上司のプログラムを見たときは本当に感動したものです。
 KB単位のプログラミングは文字数との格闘です。どんなに良いプログラムでも字数がオーバーして入りきらなかったら元も子もありません。
 そこで変数名から行番号さらには算出関数に至るまで、見事なまでのダイエットをはかり最少の文字数で必要な機能全てを網羅させていました。
 保守性が決していいとは思いませんでしたが、美しいプログラムだった…。

 日本の小さなカブトムシの大活躍を見て、元上司のあのプログラムのことを思い出していました。
 強大なマシンパワーと潤沢なスペックにモノを言わせ、重厚長大なプログラムが闊歩する現在のPC環境…。でもそこに美しさはない。あるのは威圧感とカーネルに負担をかけまくる無骨さがあるだけです。

 同じ機能を有しているなら、プログラムサイズが小さいほうが優秀で美しいのです。そこには無理も無駄もムラもない。均整のとれたアルゴリズムとバランスの良いコードが存在するだけです。
 (最近見た最も美しいプログラムはこの人が書いたプログラムです。Microsoft認定MVP、Colo氏)

 で結局、トリビアはどうなったかというと…。日本のカブトムシ、決勝戦でヘラクレスなんたらって大カブトムシに接戦で負けちゃいました!残念!!
 しかし決勝戦に残っただけでも立派です。しかも決勝戦三本勝負で相手から一本とってますし。

 この日本のカブトムシのようなプログラムを作っていきたい!番組を見終わった後、開発者として純粋にそう思いました。
 ちなみにCell_雀って、何級なんでしょう?
 お恥ずかしい(汗)。超ヘラクレス級です(爆)。

 

>> 次の話にすすむ