ビスケットのあれこれ

ビジュアル言語ビスケット(Viscuit)に関するあれこれを書いてゆきます.

ビスケットのルーツ

2010-08-24 23:33:25 | 1
ビスケットは非常に独特な言語と思われているが,実はそのルーツとなるビジュアル言語が二つある.それらを知ると,ビスケットはそんなに変わった言語ではないことがわかるだろう.

ひとつは,KidSimというビジュアル言語である.マックの上で動く,アイコンを動かすシミュレータである.この言語はその後Cocoaと名前を変え,さらにStagecast Creatorという名前で製品化された.
http://www.stagecast.com/
簡単な例を示すと,

このプログラムで,赤い顔が右に動く,という意味になる.

さらに,

このプログラムは,赤い顔と水色の顔が隣り合っていると,赤は一つ下に下がって,水色をオレンジにする.

たとえば,

のような画面で,これらのプログラムを実行すると,
最初に赤は右に進んで,水色に衝突すると,それをオレンジに変えて,一つ下がって,...これを繰り返して,最後にはすべての水色をオレンジに変える.

製品ではもっといろんな機能があるが,基本的にはこのように動く.

絵はサイズが固定で,ます目にしか配置できない.絵を回転させることもできない.最初のKidsimの時代のコンピュータはまだ遅かったので,このような仕様でも大変高度な処理だった.たとえば,上の例では赤い顔が一つであるが,画面に赤い顔を二つ,三つ置いても,それぞれ同時に動く.動作が列で定義されているわけでもないし,自然と並行処理だった.

Stagecastは2005年に子ども向けソフトとして受賞するなど,高い評価を受けていたようであるが,その後どうなったのであろう.今なら,この路線でFlash版というのも面白いかもしれない.サイトの更新のされかたを見るとあまり流行らなかったみたいだ.

たまたま,今の時代の人には,子ども向けプログラミング言語といえば, SqueakやScratchしかないと思われているが,昔はこんな感じで本当にいろいろと変わったものがあったのだ.昔はよかったというと年寄扱いされるが,本当に昔の方が豊かだったと思う.

さて,ビスケットは,このKidsimからどのように進歩したかというと,絵をます目にとらわれず,回転もできるように自由に配置できるようにしたことである.配置が自由になると,厳密な絵の配置のマッチングがほとんど無理になる.ます目があるから厳密に「隣」という判定ができるが,自由な配置を許すと「大体となりにある」という曖昧な判定が必要になる.さらに,判定が曖昧になると,それによって動かされる絵も曖昧さの影響を受ける.くっついて隣なのか,離れて隣なのかの違いが,動きに表れて欲しい.

そのような複雑な計算をさせて動かしているのがビスケットなのである.

プログラミング言語の論理的な表現力は,Kidsimとビスケットではそんなに変わらない.表現できるアルゴリズムもほとんど同じだと思う.しかし,自由な配置を許したことで,論理的な視点だけでは語ることができない表現力が大幅に増したのである.

プログラミング教育はアルゴリズムを教えればよい,と狭くとらえている人には,このKidsimからビスケットへの拡張は理解できないかもしれない.しかし,僕がとらえているコンピュータは,アルゴリズムを表現するだけではなくて,作者(プログラマー)の微妙なニュアンスが表現できる,表現メディアなのである.

もう一つ,ビスケットの前進となった言語VISPATCH
http://www.brl.ntt.co.jp/people/hara/vispatch.html
は,説明が非常にマニアックなので,また別に書くことにする.