2009年1月31日土曜日

Scratchというプログラミング環境

さて、Scratchというプログラミング環境がある事を数カ月前に知った。
アラン・ケイが子供でもプログラミングを学べる環境を、と開発を主導してきた
Squeakから派生した発展形のようで、MITで開発しているらしい。
Squeakについってはかなり以前から知っていた。
もう何年も前だがNHKでもNYの小学校で使われているなんて事を紹介する番組が放送された記憶がある。
Squeakは現在どんなプログラミング言語でもその考え方を取り入れていると言われるオブジェクト指向の源流となった言語の一つだと言われる、Smalltalkというプログラミング言語の上に築かれた、一種のビジュアルプログラミング環境だ。
要するに、キーボードで英語の呪文のような命令を一文字ずつ打ち込むのではなく、タイルのような目に見える部品をマウスでドラッグして、まるで絵の世界のロボットでも組み立てるようにして、視覚的にプログラミングを組み立てるこのできる環境だ。正確に言うと、それはSqueakという環境の上に築かれたMorphとかe-toysという環境のことなわけなんだろうが、一般的にはそう受け止められているようだ。
要するに、難しげな英語っぽい命令を沢山覚えたりそれをキーボードで一文字ずつ打ったりせずに、マウス操作だけでもプログラムが書ける環境であるSqueakを、さらにユーザーフレンドリーにしたものがScratchだ、と言ってもそれほど間違っているとは言われないだろう。

以前から、これだけ「コンピュータ」と呼ばれるものが身の回りに溢れるようになったこの時代に、実は本当にコンピュータらしいものなんて全然ないんだと感じていた。コンピュータ雑誌なんて呼ばれるものはいくらでもあるけれど、本当に「コンピュータ」について語る雑誌なんて一冊もないじゃないか、と。もう10年位経つのだろうか、bit、とうい雑誌が「休刊」という名の廃刊になった。あれが唯一の「コンピュータ」の雑誌だったのに…
「本屋」が無くなって「雑誌・新書屋」ばかりになったとの似ている。

今の「コンピュータ」なんて、ビデオレコーダーとほとんど同じだ。誰かが作ってくれたものを、そう使うように決められた方法を「学んで」、その通りに操作するだけ。
このどこに「コンピュータ」の本質がある。
universal turing machineの有限近似たるコンピュータは、今、これだけの種族の繁栄を見ながらも、きっと心の底は虚しさが渦巻いていることだろう。

SqueakやScratchを開発する心の底には、こんな虚栄を、きっとこんな虚しさを、ぱっと見この世の春を謳歌するコンピュータに、本当の生き甲斐を与えたいという思いがあるんじゃないだろうか。
子供でもプログラミングできる、そしてコンピュータに対しては素人である、ほとんど全ての大人にもプログラミングできる、すなわち、「コンピュータ」と呼ばれる家電製品を、正しくコンピュータたらしめるためにそのuniversatilyを引き出すための道具としてSqueakやScratchを開発しているんじゃないかと思う。

酒が入っているのでなんだか良く分からなくなってきたが、要するに、CだのC++だのC#だのJavaだのLispだのPrologだのMLだのPythonだのPerlだのRubyだのActionScriptだのJavaScriptだの…、呪文のようなプログラミング言語を自分の指で一文字ずつタイピングせずとも、アイコンのような部品をマウスでドラッグ&ドロップすることでプログラムを組み上げていくことのできる環境が、Scratchです。まだSqueakの情報量には及ばないけれど、英語の本は一冊出てきました。いずれここで報告したい。
小中高で、教える先生が「何をすればいいか分からない」から、とりあえずネットで調べてパワポでプレゼン作って発表会させる、なんて授業をする位なら、こんな環境でコンピュータに自分の気持を伝え、それを実行してもらう経験をしてもらえたらいいなぁ、と思った。
コンピュータは、気持を正確に伝えることさえできれば何でもしてくれる、万能機械なんだから。

2 件のコメント:

abee さんのコメント...

こんにちは、はじめまして。EtoysとScratchの日本語化を行ったものです。
mixさんの書かれたものは、私が今まで読んだものの中でおそらく最も正鵠を射たものです。
ある意味不幸なことに、Squeak Etoysは日本では子供の創造性を高めるとか、論理的な思考力を養うなどの安易なキャッチフレーズと共に使われるようになっています。
かつて、アラン・ケイはCAIが導入された教室を見て、カーゴカルト(積荷信仰)と呼びました。子供も教師も保護者もハッピーなのに、良く観察すると子供たちは、ただゲームとして遊んでいるだけで何も学んでいなかったからです。
Squeakは、子供自身がプログラミングによってあらゆるメディアを作れるパーソナルダイナミックメディア、すなわちダイナブックなのですが、導入をあせるあまり、もしかしたらSqueakもカーゴカルトになってしまったのではないかとの危惧を持っています。
Scratchはパパートの思想が濃く出ており、ダイナブックとは少しゴールが違うのですが、今度はその轍を踏まないように気をつけたいと思っています。
このあたり、今月下旬に書店に並ぶSoftware Designの3月号に記事を書きましたので、よろしければお読みください。

すこしずれますが、アランさんがいかに論文を書き、講演しても、MacやiPhoneは理想のコンピュータだとか、ついにダイナブックを超えたとか言われる状況は勘弁してもらいたいと思っています。それ自体でプログラムを書けないiPhoneはダイナブックの対極にあるものです。

mix さんのコメント...

こんにちは、コメントありがとうございます。
とりあえずはじめてみたブログだったので、まあ人目に触れる事もないだろうと思っていたところにコメントを頂いて有り難く思っています。
しかもScratchの日本語化をなさった方から。日本語化された事で、日本での普及が大きく促進されるのは間違いないと思います。
「それほど間違っているとは言われないだろう」とは書きましたが、それは違う!との御叱りではなく安堵しました^^;)

カーゴカルトという言葉の意味は完全には分かりませんが(ネットで調べていて、そういやそんな話があったなと、ファインマンのカーゴカルトサイエンスのエピソードをぼんやり思い出しました)、最近ではe-learningがそうなりかけているような気がしています...

ScratchとSqueakの目標の違いについては今のところ私には分からないのですが、感覚として、子供やコンピュータの非専門家にはScratchの方が勧めやすいかなと感じています。

abeeさんも関わってらっしゃる(?)のでしょうか、日本語の本も一冊刊行されましたので、さっそく取り寄せました。少しずつ楽しんでいこうと思います。

実はソフトウェアデザインの記事を拝読してからと思っていたのですが、三月号が手元に届くのはまだ先の事なのでとりあえず。
拝読後に何か感想など書かせて頂くかも知れません。