ビスケットのあれこれ

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

viscuit と scratch の違い シリーズ

2014-06-24 19:46:13 | 1
ことあるごとに,ビスケットとスクラッチとの違いをこのブログに書いていますね.

スクラッチのようなコンピュータは普通のコンピュータなので,わりとこれは何なのか普通のコンピュータを知っている人なら理解しやすいと思いますが,ビスケットは全然普通のコンピュータじゃないので,その根本的な考え方の部分がわからないと伝わらないというか.なので,こうやってことあるごとに違いを書いてます.

どちらも,絵でプログラムを書いて,実行結果は絵の動きです.その視点ではかわりません.じゃあ,何が違うのか.

スクラッチは「絵でプログラムを書いている.プログラムで絵を動かしている」というものです.しかしプログラムの絵と,動かしている絵とはまったく別のものですね.たまたま同じ「絵」という言葉を使っているだけです.この二つの文はそれぞれ分けて考えることができて「絵でプログラムを書いている」というシステムは沢山あるし,「プログラムで絵を動かしている」というシステムも沢山あります.スクラッチはたまたまこの二つを同時に言えている,だけなんです.ですが,二つの文には何のつながりもなく,その中心にあるコンピュータは普通のコンピュータと変わらないんですね.普通のコンピュータの複雑さはそのまま残っています.普通のコンピュータを複雑なまま教えたい人にはいいかもしれません.

それに対してビスケットはちょっと違います.ビスケットは「絵の上にコンピュータを作った」というものです.普通のコンピュータとは違います.絵の上に新しいコンピュータを作ったのです.コンピュータのプログラムは絵で表現され,絵のこと(絵の配置)を計算します.動かすとアニメーションになります.

プログラミング言語の世界では,何かを専門に計算するプログラミング言語はその対象に近い書き方をするのがよい,という考え方があります.一番古い例は,数値計算を沢山したかったので数式を直接かけるのがよいと考えてFORTRANが生まれたり,知識の計算を沢山したかったから知識表現のデータ構造のままプロログラムがかけた方がよいと考えてLISPが生まれました.ビスケットはそういう根源的なプログラミング言語の誕生に近い考えで設計されています.絵を動かすような計算を沢山したかったから,絵でプログラムを書くことにしたのです.

絵の上のコンピュータというのがどれくらい画期的なのか.

私たちはビットマップディスプレイやマウス,タッチパネルといったデバイスのおかげで,画面上の絵を触って動かして,まるでそこにそういうものがあるかのように操作できます.絵の上で動くコンピュータというのは,コンピュータのメモリそのものが絵ということですから,絵を触れるということは,コンピュータのメモリを直接触ることができる,ということを意味しています.ビスケットを使っていて,新しいのだけれど,古くて懐かしい感じがするのは,そのようにメモリを直接触っているからなんですね.

ちょっとコンピュータの専門家向けに話すと,プログラミング言語がどのように発展して行くのか,見て行く必要があります.プログラミング言語の設計には表面的な部分と,中身の部分とがあって,中身の部分がどれだけ発展するのかが重要です.たとえばポインタとGCはメモリをものすごく高度にしました.ラムダやマルチスレッドやオブジェクト指向や.それらに対して,どんな書き方でそういう構成要素を組み合わせるのかというシンタックスの問題があります.最近のプログラミング言語はどれも似たようなものになってしまい,新しいプログラミング言語はシンタックスが新しいもののことを言うのだと思っている人も多いのかもしれません.中身が新しいもの,つまり新しいコンピュータの計算方法を考える,という道も忘れないできちっと進めて行きましょう.

ビスケットでは,絵が動くことが計算することそのものです.何か違う計算をして結果的に絵が動いて見えているのとは全然違うのです.