Cogito Ergo Sum.

我思う故に我あり

紙芝居方式プログラミングによる3Dスパゲティプログラム

 僕が関わる社会心理学実験のコンピュータ・プログラムは、複数の画面が次々と表示されていくタイプのものが多い。そこで、うちの親分がパワーポイントを使って実験プログラムの全体像をイメージする方法を思いついた。Visual Basicでフォームにテキストボックスやボタンを配置していくように、パワーポイントにテキストボックスやボタンを配置し、実験画面のイメージを視角化するのである。テキストボックスの内容等を変化させながら複数のフォーム(と見なしたもスライド)を並べていけば、実験プログラムが進行していく様子を擬似的に体験することができる、というわけだ(もちろん、これはもちちろん外観上のイメージの話であって、それを実現するコードまでイメージできるわけではない)。

 この方法、なかなか良い方法のように最初は思ったが(そして親分は今でもそう思っていると思うが)、実は致命的な欠点がある。この方法は、プログラミング未経験者に、自分が作るべきプログラムの外観的なイメージをもたせることと、プログラムの流れ(実験の流れ)を意識させることが目的だった。見た目と流れを掴むことができたら、実際にVisual Basicで作り始めるわけだ。問題は、プログラミング未経験者が、このような一種の紙芝居としてプログラムの流れを理解してしまうと、プログラミングにおいてとても重要な「繰り返し」という概念が育たないのである。

 プログラムというものは、局所的に見れば上から順に実行されていく。しかし最も重要なのは、プログラムの流れを作り出しているのは、「繰り返し」と「条件分岐」だということなのだ。ところが、パワーポイントのスライドショーには「繰り返し」も「条件分岐」もない。最初のページから最後のページに向かって一直線に流れていくだけだ。逆に言うと、パワーポイントのスライドショーに「繰り返し」と「条件分岐」の機能が加われば、それはもうプログラム開発環境だとも言えるわけだ。

 プログラムの主導権が複数のフォーム上を次々と渡り歩いていくようなプログラムを作る場合、プログラムの実行の流れというものを意識することはもの凄く重要だ。これがしっかりできていないと、複数のフォームのあちこちに実行の流れが飛んでしまう3D的なスパゲティプログラムに容易に陥ってしまうのだ。