コンピュータの歴史からみたプログラミング

昔のコンピュータは黒い画面にキーボードで操作していました.たとえば,ファイルを移動させたいとき,move というコマンドでファイルの移動を命令します.ファイルは名前(英数字)で呼ばれ,移動先も名前(英数字)で指定されます.

move abc.txt A:

のような命令でabc.txtというファイルをAドライブに移動します.

そこに新しいコンピュータの操作法が登場します.Graphical User Interface (GUI) というものでした.ファイルはアイコンで表示されていて,移動先はフォルダやウインドウです.もっとすごいのは移動という命令は明示的になくなって,移動させたいファイルのアイコンをマウスで持って移動先にまでドラッグする,という直接な操作が命令そのものになりました.実際のコンピュータのファイルシステムはもちろんウインドウとかフォルダのアイコンでできてるわけではなく,昔の文字での命令に近い形なんですが,ファイルのアイコンをドラッグして行先のフォルダまで持って行ったとすると,内部的には move abc.txt A: という命令と同じ処理をしているのでした.

文字による命令の仕方はコンピュータのファイルシステムの構造に近いですから,より基礎的だと言えます.しかし,いくら基礎的だと言っても,マウスで直接ドラッグした方が人間の直感に合っているのですから,本当の専門家じゃない限り文字による命令は使われなくなり,ほとんどのアプリはマウスによる直接操作に変わりました.

プログラミングはどうでしょうか.もともとのプログラミングは英語と数字を使います.その方が正確で厳密にプログラムを作ることができるからです.絵を動かしたいとしても,絵がプログラムの中に出てくるのではなく,絵に名前をつけてプログラムの中ではその名前に対して命令することで絵を動かします.命令も英語などの言葉で,動かし方は数字で表します.たとえば
rocket.move(2,52)
という命令で,ロケットの絵を横方向に2縦方向に52だけ動かす,という意味になります.

それに対してビスケットではプログラミングで名前や数字は使いません.絵を動かしたければその絵をつかってプログラムを作ります.動かし方は絵のずらし方で決めて,上の方にずらしておけば上に動きます.

ロケットを動かすプログラムを作るときに,数字も英語も使いません.反対の方向に動かすためにマイナスの数を使う,ということも必要ありません.

プログラミングをやると,抽象的に物事を考えられるようになるとか,座標の概念が理解できて,マイナスの数を自然に教えられるとか言われてます.ところが,ビスケットでは,具体的な絵をつかって座標やマイナスの数の概念に触れることなく自在に絵を動かす命令をだせるのです.

ビスケットも内部は普通のコンピュータと一緒ですから,メガネに絵をずらしていれてあれば,その配置からどの方向に離れて置かれているのかを調べて,先ほどの rocket.move(2, 52) と同じ処理をします.

プログラミングを子どもに教える場合,コンピュータの基礎に近いからという理由で,従来のプログラミングを頑張って教えるのか,難しいことに触れずに自在に動かせる方を選ぶのか.どちらを選ぶのかは,プログラミングを教える理由がなんであるかによると思います.プログラミングの専門家を育成するためであるならどんなに難しくても前者です.一方でプログラミングによってコンピュータを自在に動かすのが目的であるならば,難しいことを知らないでも動かすことができる方がよいでしょう.

コンピュータの操作法がGUIに進化したことでコンピュータが大衆化したという歴史を踏まえると,プログラミングを大衆化したいのであればGUIのように進化したプログラミング言語を使うべきではないでしょうか.

シェアする

  • このエントリーをはてなブックマークに追加

フォローする