「???」なんだろうこの違和感は・・・・
数歩戻って棚の前に立ち止まり、考えること数十秒。ようやく違和感の理由が分かりました。「聖者が街にやってくる」というタイトルの曲は実はないのです。正しくは「聖者の行進」なのです。この曲名と「サンタが街にやってくる」という曲名が編集者の中でごっちゃになっていて、このようなトンチンカンな見出しができてしまったのだと思います。
その後、色んな人に「聖者の行進」のメロディを歌って聞かせて曲名を聞いてみたところ、かなりの割合でこの曲を「聖者が街にやってくる」だと思い込んでいる人がいることがわかりました。
彼らも恐らく、小さい頃は「聖者の行進」で覚えていたはずなのです。それが、大人になった頃にはいつの間にか「聖者が街にやってくる」に記憶がすりかわっているのです。なぜなのでしょうか?
思うに、この曲の日本語のタイトルは「聖者の行進」よりも「聖者が街にやってくる」もしくは「聖者が街に」の方がふさわしかったのではないかと。
その根拠はと言いますと・・・・
この曲の英語の歌詞の一部が「Saints go marchin' in」になっていて、この「marchin' in」のところが、なんとなく「ま〜ち〜に」に聞こえてしまうことがその原因ではないかと思うのです。
大人の大半がこの曲のタイトルを「聖者が街に・・・」にすりかえてしまうのは、この英語の歌詞を耳にしてしまったからなのではないでしょうか。
この曲に日本語のタイトルをつけたのが誰なのかはわかりませんが、その翻訳者が逆になぜこの「marchin' in」のところ無視して「聖者の行進」というタイトルを付けたのかが知りたいところです。確かに翻訳としては間違っていないのですが、こんな「marchin' in≠ま〜ち〜に」という「素晴らしい偶然」が曲名に生かされていないことが少し残念でなりません。日本語の歌詞の方はそうなっているのでしょうか?
確かに、プロジェクト全員が同一の能力と権限を持っている場合、全員がそれぞれの思惑で勝手に派生クラスなどを作り始めると開発作業全体が破綻するのは目に見えています。そういう開発体制では、確かに派生クラスを作ること自体に慎重にならざるを得ません。
しかし、この体制はいわゆる「XP(エクストリームプログラミング)」の流れで起こっていることで、全員が均質なスキルで、ソースに関しての知識も均質であるべきというところからスタートしているものです。
その前提を基本的に取り払ってしまうとどうなるのでしょうか?つまり、プログラマを、フレームワーク作成者と、業務ロジック作成者に最初から分けてしまうのです。分担は以下のようになります。
フレームワークができてしまえば、業務ロジック作成者はフレームワーク作成者が設計上前提としている以外の派生クラス作成は禁止されます。全ての業務ロジックは、フレームワーク作成者の監視の下で作成されるのです。
こうすることで、いくつかのメリットが生まれます。
「派生クラスを作っているうちに自分でコードが訳わからなくなるようなバカタレには派生クラスを作らせるな」
ということなのです。悪いのは派生クラスを作ることではなく、派生クラスを作っているうちに自分で理解できなくなってしまうようなやつ、返して言えば自分で理解不可能になってしまうような実装をするようなやつであり、そういうスキルのプログラマに実装を任せた側なのです。
この文章には何も新しいことは書いていません。オブジェクト指向が元々前提としていた開発体制を今一度みんなで見直すべきなのではないか、と提案しているだけです。クラスの派生を批判する前に、もう一度オブジェクト指向開発現場での人員配置を考え直してみるべきなのではないでしょうか。