Scratchというプログラム言語について

おひさしぶりです。
エントリーしたいネタはたくさん溜まっているんだけど、ブログばっかり更新されて溜まった仕事が更新されていかないのもやーねーという気がしていたんで書いてなかったけど、やっぱり書きたいことができたのでかいちゃうけど、もう夜も遅いので一つだけにする。


今月の日経ソフトウェアでScratchというプログラム言語が紹介されていた。記事を少し読んだだけで、僕が長年探していたモノだとわかったので早速ダウンロードして使ってみた。果たして、それはまさに僕が長年探していたモノだった。


システムエンジニアになり、子供が生まれた。当然、子供には自分の仕事を分かってほしいし、できる事ならコンピュータを動かすことの楽しさを教えてやりたい。長い間そう考えていた。
僕が初めてパソコンに触れたのは小学校4年生のこと。親父がよく分からないままに知り合いからNECPC-8001を譲り受けて来たのだ。PC-8001と言えば、日本初のパーソナルコンピュータと言われるエポックメイキングな名機なのだけれども、まだOSなんてものはなく、当然ソリティアみたいなゲームも付いていなく、コンピュータを触ることはプログラムを組む事に等しかった。
当然、僕は唐突に目の前に現れた新しい玩具に夢中になった。まだ英語も分からないくせに、RANDOMとかPRINTとかLOCATEとかBEEPとか入力しては、コンピュータが自分の意のままに動くことを楽しんだ。思えばこの時、僕の人生のかなりの部分が決定していたのだろう。高校時代、大学時代と文系の道を歩み、散々運命に抗ったにも関わらず、結局はシステムエンジニアになってしまったのだから。


この時代のコンピュータはまだ石器時代のようなもので、できることには限界があった。でも、楽しんで、必死になって触ってさえいれば、その全体像が子供にもつかめるような時代でもあった。カラーは8色、マルチタスクでもないし、インターフェースを繋ぐなんてのは夢のまた夢、当然ネットもないし、ネットどころかネットワークさえない。真剣にプログラムを組めばメモリは簡単にオーバーフローする。65,536なんて数字は出てこなく、出てくるのは256という数字だけ。簡単に言えば牧歌的だったのだ。でも、その箱庭のような空間がとてつもない可能性を秘めているのだけはビシビシ伝わってきた。


時代は流れ、今やパソコンは64bitの時代を迎えた。プログラム=BASICという時代もとうに終わり、世の中には無数のプログラム言語があふれかえっている。ライブラリも充実し、APIなんてものも登場し、凄いソフトウェアを作り出すことは簡単になってきた。
でも、その一方で、開発者すら把握できないブラックボックスも増えて行った。ぶっちゃけてしまえば、僕自身、僕が作成したプログラムがどうして動いているのかうまく説明できないし、それはアプリ開発に従事する人々の殆どが日々漠然と抱いている不安ではないかと思う。


僕はここでシステムエンジニアの悲哀を語ろうというわけじゃないんだけど、コンピュータの発展とともに、コンピュータの持つ箱庭感みたいなものがなくなりつつあるのは確かだろう。


で、話は冒頭に戻る。
子供にある程度の理解力が出て来た頃から、子供向けのプログラム言語ってのを探していたんだけど、これがないんです。どの言語もそれなりにとっつきやすいんだけれども、子供がワクワクするようなレベルに達する前に大きなハードルが待ち構えているのです。例えばオブジェクト指向、クラス、インスタンスと言った、概念的思考能力。
実際、何度か子供にプログラムを組んでみせたんだけど、すぐに難しい顔をしてお腹がいっぱいになってしまうことの繰り返し。結局、小学校6年生になるまで、息子にプログラムを教える試みは失敗の連続だった。



さて、ScratchはMITメディアラボが開発したプログラム言語。ここはLEGOのMind Stormsも開発したラボで、プログラム言語を通じた教育活動を真剣に研究している偉い人たち。別に偉いから凄いってわけじゃないけど、このプログラム言語は凄い。この言語には、コンピュータが発展とともに失ってしまった箱庭感がある。

Scratchには一切のコーディングがない。あるのは画面上にあるブロックのみ。例えば左図のようにブロックを組み合わせるだけで、右側にいる猫が画面上を左右に動き回る。すごいでしょ?子供でも理解できるでしょ?
実際、今まで何を見せても反応しなかった息子がビシビシ反応した。ちょっと触ってから、「ねえ、これを夏休みの自由研究にしていい?」と聞いてきた。


無論オッケーです。
今年の夏は、子供と一緒に、もう一度コンピュータを触るワクワク感を経験したいと思っている。


興味がある人は、以下からプログラムがダウンロードできるので、是非試してみて欲しい。楽しみながら、コンピュータがどうやって動いているのかが、何となく理解できるんじゃないかと思います。日本語版もあるから、英語が読めなくても大丈夫です。

http://scratch.mit.edu/