広い世の中の何箇所かで、開放型プログラムと閉鎖型プログラムについて議論 が上がっている。論点は幾つかある。
1.については、複雑怪奇な定義を考える人もいるが、私は単純に、
と理解している。CHシリーズのプログラムアーキテクチャの分類の一つとして、 とてもわかり易い。
では「メインループの定義は?」と聞く人もいるが、プログラムを組んだ本人 がメインループだと思えば、それがメインループだ。
ちなみに、メインループ以外は、局所ループとかローカルループとか呼んでい る。閉鎖型・開放型に関わらず、頻繁に使われるので特に言及することも無い。
2.については、前世紀にはSTARTに戻るペナルティが大きかった時代もあった ので閉鎖型のメリットは大きかったが、現在はほとんど無い。開放型では初期 化の場合分けなど、1〜2個の判断チップが余計に入るかもしれないが、デメリッ トはそれぐらいである。メリットは、どこからでもメインループの開始に戻れ るということから、「作り易さ」であることは明らかだろう。
3.は、利点欠点が明らかになって、「数チップの処理時間」と「作り易さ」 というトレードオフの問題になったのだから、あとは製作者がどっちを重視す るかの問題だ。「数チップの処理時間」は機体の反応時間に直結するが、「作 り易さ」は改良し易さ、新機能の組み込み易さにつながるため、これは機体の 戦術的な強さに直結する。結局、どちらに優劣があるわけでもない。
「最初は開放型で作って、完成したら閉鎖型に作り直すのが最良だ」と言う意 見・・・ごもっとも。機体の反応速度と戦術的な強さは直交する概念だから、 両立は可能だ。変換はなかなか大変な作業だと思うが、頑張って欲しい。リリー ス直前にやると間違いなくバグを仕込むので要注意。
ちなみに、私は閉鎖型で作ることはほぼ無い。
4.については・・・「どうでもいいじゃん」と思う。なんで既に名前の定着 した事柄に拘る人がいるのか不明である。
余談だが、この閉鎖型の図はかっこいい。