「ドラッグ&ドロップでアプリ作成(LifeHacker)」といってもモジュール化ソフトではなくて…

Google Blockyは、「ドラッグ&ドロップでアプリ作成(LifeHacker)」といっても、昔のJavaBeansのようなモジュール化ソフトではなくて、プログラミング言語の要素をブロックで表現して、そのブロックを組合せてプログラミングをしよう、というもの。もしMITのScratchをご存じなら、それと同じ。説明に曰く、

BlocklyはApp InventorというGoogleのグラフィカルコーディングツールに感化されたツール(そしてそのApp InventorはMITが開発した子ども用プログラム言語学習ツール『Scratch』の影響を受けて開発されたツール)。実際、Blocklyの見映えはScratchそっくりとなっているのですが、…

ということである。 ではScratchと何が違う? Scratchは子供用と言われていたが、Blockyはそうでない? それよりなにより、BlockyはGoogleのマークが付くことであることだろう。(MITよりGoogleの方がキャッチ-だと言っている。)

さて、真面目に考えてみよう。 誰を対象にするのか? このLifeHackerの記事では、「コードブロックをエクスポートすることによって、JavaScript, Dart, Python, XMLのコードが表示可能、だから大人にも最適な学習ツール」 というのだが、どうだろう? 最大のメリットは、プログラミングの学習時に見る(1)細かい(どうでもいい)書き方規則を、どうでもいいものにしてしまうこと、そして、(2)ループブロックや条件分岐のブロックの意味が視覚的に良く分かること、 だろうと思う。 Scratchの記事でよく子供が30分もしないうちにそれなりのプログラムを書いてしまう、という記述を見かけるが、おそらくプログラミングの本質を学ぶには普通の(文字ベースの)言語よりはるかに良い道具なのではなかろうか?

Scratchを実際にプログラムしてみて、1つだけ難しいことがあった。階層的に書くことがあまり得意でないようなのだ。少なくとも私には大きいプログラムをうまく作ることができていない。

(手続き型の)プログラミングの教育という観点で、学ぶべき本質が何か、それを効率的に(余分なものを取り込まないで)学ぶには、どういう道具立てがいいのか、考えさせられる。少なくとも、C言語やJavaや、その昔のPascalなどが最適とは思えないのだが。