子ども向けプログラミング言語のタイプはさまざま
「プログラミング」と聞くと大量な英語や数字が並んでいるイメージがある通り、通常はプログラミング言語ごとのルールに基づいたプログラムコードを記述していく。英語の指示語が多いが、語学としての英語とは全く違うものなので、英語ができればプログラミングができるわけではないし、プログラミングができれば英語が流ちょうに使いこなせるわけでもない。
子どもの場合、文字をタイプするのがハードルになることが多い上、英語が母語でないとアルファベット表記も壁になる。そのため、子ども向けのプログラミング言語は、プログラムに必要な要素をグラフィカルにパーツ化し、ドラッグ&ドロップのマウス操作でプログラミングできるように工夫したものが多い。これらを広く「ビジュアルプログラミング言語」と呼び、それに対応して、文字でコードを記述するプログラミング言語を「テキスト言語」と呼ぶ。
ビジュアルプログラミング言語といっても、その手法にはさまざまなタイプがあり、最もメジャーなのがScratchでおなじみのブロックタイプだ。ブロックタイプの場合、指示の書かれた小さなブロックをマウス操作でつなぎ合わせてプログラミングしていく。ブロックを並べる順序や論理構造の作り方は、一般的なテキスト言語の考え方に似ている。また、ブロックタイプで多カ国の言語に対応している場合、例えば「move 10 steps」というブロックは「10歩動かす」のように日本語に置き換えられているので、英語が母語でない日本の子どもでも扱いやすい。
「ビスケット」はどんなプログラミング言語?
今回のセッションで扱われた「ビスケット(Viscuit)」もビジュアルプログラミング言語なのだが、Scratchのようなブロックタイプのビジュアル言語とはずいぶん違い、非常に独特だ。
ビスケットには、「メガネ」と呼ばれる独自の入れ物があり、例えばその左右のエリアに同じ絵を入れると、その配置に応じて絵に動きをつけることができる。さらに、メガネを複数用意したり、他の要素を追加したりすることで、条件のある仕組みを作ることもできるようになっている。動きや条件を言葉や数値で指定する工程はなく、非常に直感的なのだ。
Scratchのようなブロックタイプは、基本的に、テキスト言語の論理構造をパーツ化しているので、方向性が全く違う。オープンソースのScratchから派生したものの他にも類似のものが多数あり、「ブロックタイプ」としてある程度ジャンルをくくることができる。
同じビジュアルプログラミング言語といっても、ビスケットは独自路線で、類似のものは少ない。
ビスケットの特徴は? 生みの親原田氏が解説
原田氏はビスケットの紹介をしながら、その特徴を解説した。ここでは3つのポイントをご紹介しよう。
(1)大ざっぱな指定ができる
例えば、魚の絵を「斜め上に動け」と指定するとき、コンピュータを動かすには数値で指定する必要があるが、実際に人間が考える「斜め上」というのは、数値ではなくもっと大ざっぱな位置だ。ビスケットの場合、その大ざっぱな感覚で魚の絵をメガネの左右に配置すれば、2つの絵のずれからコンピュータが数値を取り出して解釈してくれる。
(2)座標の隠蔽
ビスケットでは、「○○の絵にタッチしたら」といった条件や、「○と△の絵がぶつかったら」といった当たり判定の位置の設定に、座標の数値指定をする必要がない。直接メガネ上で、条件用アイコンの位置や、絵同士の配置を調整することで、タッチ判定や衝突判定の位置を決められる。
(3)必ず使うものは隠す
プログラミングでは、論理構造を作る際にたいてい使う表現がある。例えば、「ずっと」「もし○○なら」などだ。ブロックタイプのビジュアルプログラミング言語の場合、テキスト言語と同様に、「ずっと」や「もし○○なら」のブロックを使って論理構造を作るのだが、ビスケットは違う。メガネの左右に入れるものやメガネ同士の配置に応じて、「ずっと」「もし○○なら」などが導き出されるのだ。
以上のような特徴を持つビスケットの、プログラミング言語としての位置づけを、原田氏は図で示した。ビスケットは、JavaScript等の現在よく使われるテキスト言語の代替ではなく、それとは別の階層にある。ビスケットは新しいプログラミング言語の形を作ろうとしているわけだ。