開放型プログラムと閉鎖型プログラム
2006-09-11


広い世の中の何箇所かで、開放型プログラムと閉鎖型プログラムについて議論 が上がっている。論点は幾つかある。

  1. 開放型の定義は?閉鎖型の定義は?
  2. 開放型の利点は?閉鎖型の利点は?
  3. 閉鎖型のほうが優れている。閉鎖型に変えるとかっこいい!
  4. そもそも、プログラムに開放型・閉鎖型の区別は無いから、そう呼ぶことは愚かだ

1.については、複雑怪奇な定義を考える人もいるが、私は単純に、

と理解している。CHシリーズのプログラムアーキテクチャの分類の一つとして、 とてもわかり易い。

では「メインループの定義は?」と聞く人もいるが、プログラムを組んだ本人 がメインループだと思えば、それがメインループだ。

ちなみに、メインループ以外は、局所ループとかローカルループとか呼んでい る。閉鎖型・開放型に関わらず、頻繁に使われるので特に言及することも無い。

2.については、前世紀にはSTARTに戻るペナルティが大きかった時代もあった ので閉鎖型のメリットは大きかったが、現在はほとんど無い。開放型では初期 化の場合分けなど、1〜2個の判断チップが余計に入るかもしれないが、デメリッ トはそれぐらいである。メリットは、どこからでもメインループの開始に戻れ るということから、「作り易さ」であることは明らかだろう。

3.は、利点欠点が明らかになって、「数チップの処理時間」と「作り易さ」 というトレードオフの問題になったのだから、あとは製作者がどっちを重視す るかの問題だ。「数チップの処理時間」は機体の反応時間に直結するが、「作 り易さ」は改良し易さ、新機能の組み込み易さにつながるため、これは機体の 戦術的な強さに直結する。結局、どちらに優劣があるわけでもない。

「最初は開放型で作って、完成したら閉鎖型に作り直すのが最良だ」と言う意 見・・・ごもっとも。機体の反応速度と戦術的な強さは直交する概念だから、 両立は可能だ。変換はなかなか大変な作業だと思うが、頑張って欲しい。リリー ス直前にやると間違いなくバグを仕込むので要注意。

ちなみに、私は閉鎖型で作ることはほぼ無い。

4.については・・・「どうでもいいじゃん」と思う。なんで既に名前の定着 した事柄に拘る人がいるのか不明である。

余談だが、この閉鎖型の図はかっこいい。

[Carnage Heart]

コメント(全2件)


記事を書く
powered by ASAHIネット