2009年2月15日日曜日

「スクラッチアイデアブック」を一通りやってみた

さて、前回手元に届いた表題の本に一通り目を通しながら、実際にScratchでスクリプトを組み実行してみた。
ピコボードというフィジカルなモノがないとできない部分は残念ながらやっていないけれど。

まず最初に言いたいのは、Squeakでは感じた良く分からない抵抗がほとんどなく、Scratchには非常にスムーズに取り組めた事だ。このあたり、SqueakからScratchに発展する過程で、僕には明確には分からない所で色々思案された成果が出ているんだろうなと思った。

本の方も非常にスンナリ読み進む事ができた。何箇所か説明されないものがあり、コレは何だろうと思う点があったけれど、全体的には非常に楽しく進められた。一般的なプログラミング言語の場合、タイポなど、まあ道具の扱いという意味では非常に根本的な問題ではあるけれど、プログラミングの本質(と言っても、問われても明確には答えられないが...)には関係ない部分で足をすくわれる事も多い。この本を一通りなぞる間にそういう経験はなかった。子供やPC操作に熟練していない一般的な人が取り組む時、実はこういう「些細な」点は非常に重要だと思う。

一通り終えて、日本語の最初の本としては非常に良い本が出たなと素直にそう思えた。
ただ、今のところ一冊だけ、英語の本を入れても二冊しかない状況を考えると、「ゼロからの入門」のさらにその先へ橋を架ける内容も欲しかった。残念ながら今後もScratchの本が続々と出てくる事は考え難いから。(ところで「ゼロから学ぶ…」という副題はfrom scratchに引っ掛けてあるんだろうか...なんて思ったり)

今回この本をなぞりながらネットで調べつつ日本語版Scratchを使ってみて初めて知った点や気付いた点、若干気になる点もあった。

まず、Scratchはスクリプトでインスタンスを作れないらしい。
プロトタイプベースというのだろうか、クラス定義からインスタンスを生成するのではなく、具体的なインスタンスを作り、それを人間の手動操作で複製してはじめて別のインスタンスを作れるらしい。
本の第5章「シューティングゲームを作る」のところで、複数の弾丸(ビーム)を同時に使うにはどうすればいいのか考えている時に調べて知った。

また、メソッド(スクリプト片)には名前が付けられないらしい。引数もない。返り値もない。
メッセージもブロードキャストされて、特定インスタンスだけに送るという事はできないようだ。
このあたり、オブジェクト指向プログラミングの基本概念を教える事が主目的の一つになっているらしいAliceとは大きく違うようだ。
まあ、大域変数(全スプライト用の変数)とメッセージを使えばメソッド呼び出しっぽい事はできるわけだけど。変数を使って基底のチェックさえしてやれば再帰のような事もできそうだし。新たなローカル変数が自動的に生成されるわけではないのでできないか...
なんて事を考えるのは無粋なんだろうと思う。

日本語版については、コマンドタイルの日本語の文章がしっくりこないところが何箇所かあった。
例えば、配列の要素の値を変更するコマンド、「replace item [1] of [xx] with [thing]」という、配列変数の要素への代入が、日本語版では「[1]番目([xx]の)を[もの]で置き換える」となっているが、これは普通に「[aa]の[1]番目の要素を[もの]で置き換える」の方が良いんじゃないだろうか。今のままだと日本語としても気持ちが悪い。「要素を」が入ると長過ぎるかもしれないので、それは無くても構わないけど。

本を一通りなぞった後に、タートルグラフィックスっぽい事をして遊んでみた。再帰の問題があるのでフラクタル画像なんかはあまりやりたくはないけれど、ちょっとした幾何学模様を描いて楽しむ事もできた。

色々いじりながら、Scratchのターゲットはどういう層で、その層が成長した時にはどうさせたいのだろうという疑問がふと浮かんできた。
「本格的」にプログラミングに取り組みたくなった人や、あるいはアニメーションやゲームを作りたくなった人、そういう人達はこの後なにをすればいいんだろう。
もしプログラミング教育の導入としてScratchが使われた場合、その後どう導いてやるんだろう。
今回色々いじりながら、「マウスでドラッグ&ドロップして気軽にプログラムが作れる」わけではなく、ちゃんと考えながらやらなければいけないのは良く分かったので、しっかりトレーニングにはなるのだろうとは思ったけれど。

何はともあれ、非常に楽しく取り組めた。

0 件のコメント: