一定期間更新がないため広告を表示しています
コンピュータを都市だとすると、OSは政府か役所であり、その上で動くアプリケーションやドライバは企業みたいなものである。ちょっと違うような気もするが、あまり気にしてはならない。
役所であれ企業であれ、そこでは誰かの労働力を必要とする。それすなわち妖精さんである。コンピュータの中では数多のソフトウェアが稼働しているが、さらにその中を覗けば無数の妖精さんたちが活躍している訳である。とうとうアタマがどうにかなったかと人は思うであろうが、あまり気にしてはならない。
妖精さんは割と万能で、どんな仕事でも素早くそつなくこなすことが可能だが、最初から有能かというとそうでもなく、やり方を教わらなくては何もできない。そこで、誰かが彼らに働き方を教えてあげる必要がある。その教師をプログラマという。プログラマはプログラムを組むことによって妖精さんの教育を試みる。つまり、プログラムとは妖精さんの教育課程なのである。
前述の通り妖精さんは割と万能だが、ひとりに過剰な仕事を押し付けると、おしなべて効率が悪い。そこで、普通は妖精さんごとに専門教育を施し、その能力に応じて仕事を分担させるという方針を採る。大学が複数の学部を持つように、プログラマも分野ごとに妖精さんのクラスを作る。このクラスを卒業した妖精さんにはどんな仕事を任せたいか、その仕事にはどういうやり方が必要か、その辺を踏まえながらクラス分けを行い、教える内容を定めていく。
クラスが良い具合に出そろったら、あとは各クラスで学んだ妖精さんを必要なだけ召喚し、職場に集結させて仕事を任せるだけである──妖精さんは妖精というだけあって不思議な存在なので、スペースの許す限りいくらでも呼ぶことができる。ただし妖精さんは楽しいことがあると際限なく増える性質があるため、暴走しないようにそれとなく注意しておかねばならない(後段の性質については田中ロミオ氏の著作に詳しい)。
このようにして教育を受けた大勢の妖精さんが協調的に働くことで、役所や企業、もといソフトウェアはうまく動く、ことになっている。少なくとも妖精さんたちは教えに忠実に従って高速で働き回る。故に、もしソフトウェアがうまく動かなかったなら、それはすべて教師たるプログラマの責任である。
以上のようにソフトウェアの要素を妖精さんになぞらえて考えることを、妖精さん指向プログラミングという。かもしれない。頑張ればオブジェクト指向プログラミングの概要くらいなら全面的に妖精さんで説明できそうな気がするが、頑張ったところで何になる訳でもないので、このくらいにしておく。ぼくは自分の妖精さんを養成するだけで手一杯なのである。