子供向けのオープンソース・プログラミング言語
この2年間で、子供を対象とするオープンソースのプログラミング言語とユーティリティの数は爆発的に増えた。こういった活動の根底にあるのは、BASICの時代と比べてプログラミング環境があまりに複雑になり、専門知識のない若年層には敷居が高過ぎるという考えだ。あるツールキットは若年層にアピールするゲームやアニメーションなどのプロジェクトを構想、作成するまったく新しい方法の考案を目指し、またあるツールキットはBASICの”ベーシック”性をモダンな言語と環境に再現しようと取り組んでいる。
Scratch
MITのLifelong Kindergartenグループが開発したScratchは、Squeakに実装されたグラフィカルなプログラミング環境であり、その操作方法はLEGOの遊び方によく似ている。基本的に、カラフルなコードのブロックを組み立てることでプログラムを作成する。独自のインターフェースを利用し、グラフィックスとサウンドを組み入れて簡単なアニメーションを作成できる。ループやif文などのすべての基本プログラミング構造がサポートされ、種類の異なるブロックをモーション、センシング、サウンドなどのカテゴリにグループ化できる。
ScratchにはMicrosoft Windows版とMac OS X版があるが、まだ(正式な)ネイティブのLinux版はない。Wineを利用して実行することは可能だが、今回テストした限りではほとんどのオーディオ関連のScratchプログラムが動作しなかった。Linuxで動作可能なバージョンのScratchもあるが、MITの開発者はあまり熱心に取り組んでいない。このバージョンの問題の1つは、Scratchプログラムを全画面表示で使用するプレゼンテーションモードが機能しないことだ。Scratchプログラムを表示するモードはほかにもあるので致命的な欠点ではないが、便利な機能が欠けていることは明らかだ。
Scratchが備える便利な機能の1つは、完成したプログラムをScratch Webサイトにアップロードできることだ。このサイトではアカウントを作成し、サポートを要求し、他のScratchユーザがアップロードしたプログラムを利用することができる。アップロードされたプログラムはどれもオープンソースであり、これらのScratchプログラムのソースをダウンロードし、変更することは自由である。また、ScratchプログラムをWebブラウザに表示することもできる。この機能の大部分は、Scratch Playerと呼ばれるJavaアプレットを通じて実現される。ScratchそのものはScratch Licenseなる独自のライセンスに基づいてリリースされ、アップロードされたプログラムはCreative Commons Share Alike licenseに従う。
Scratchを試して気が付いた問題点は、たくさんのグラフィックスや特に音楽が含まれる場合にプログラムのソースコードが大きくなることだ。音楽を再生するだけの単純なあるプログラムは、なんと93MBの大きさになった。一般にScratchで60MBを超えるプログラムを読み込むと応答が極端に悪くなり、たいていはエラーになる。ファイルのサイズが大きくなるのは、ソースコードが古いことに関係があると思われる。同じファイルの保存と再取得の処理が繰り返されることで、サイズが指数関数的に肥大化するようだ。
Alice
Scratchは2Dグラフィックス、テキスト、その他の”平面的な”プログラミング概念を扱うが、Aliceでは3Dのムービーとゲームを舞台にプログラミングの基礎を学習する。AliceはJavaで書かれたツールであり、ドラッグ&ドロップ操作でプログラムを組み立てる点はScratchと似ている。
Carnegie Mellon大学の研究グループが開発したAliceは、Linux版、Mac OS X版、Windows版がリリースされ、Alice Licenseというライセンスに基づいて公開される。ソースコードをダウンロードし、読解できる点で環境はオープンソースだが、開発者はチーム内で作業を完結させることを好み、外部からのコードの寄与を受け付けない。1999年頃に登場したAliceは、子供にプログラミングを教えるための環境として最も古く、最も開発が進んでいるものだ。そのため、世界中の学校で利用されている。
Shoes
Shoesは、”why the lucky stiff“で知られる開発者によって開発され、現在は大規模な開発コミュニティによって開発が続けられている。ユーザフレンドリなRubyプログラミング言語で書かれたShoesは、伝統的なプログラミング手法にやや比重を置いたオープンソースのツールキットである。Shoesでプログラムを作成するために必要なものは、ランタイム環境を除き、通常のテキストエディタだけである。プロジェクトのWebサイトからフリーのPDF形式ガイドブックをチュートリアルやサンプルを含め入手できる。また、印刷されたガイドブックを$5.57で注文することもできる。Shoes 2には、キーコマンドでアクセスできる充実したマニュアルが組み込まれている。
Shoesの構文はRubyに似ており、グラフィックスやボタンの作成、カラーやテキストの表示を簡単に行うメソッドが用意されている。Linux、Mac OS X、Windowsなど、複数のプラットフォームに対応する。プラットフォーム間の互換性は良好であり、ウィンドウ、ボタン、ダイアログはそれぞれの環境のネイティブな外観で表示される。アプリケーションを最初に作成したのがどのプラットフォームであっても関係ない。Rubyに似ていることのメリットは、さまざまなRubyGemsパッケージにアクセスできることだ。Shoes 2には、ユーザのシステムにまだ存在しないGemを自動的にインストールする機能さえある。
Shoesにはファンによって運営されるWebサイトがあり、Shoesで作成したアプリケーションのギャラリーが公開されている。Scratchと同様に、アップロードされたすべてのアプリケーションは自由にダウンロード、変更、再編成できる。ShoesそのものはMIT Licenseに従ってリリースされ、外部でのパッチ作成や開発に門戸が開かれている。
他にも子供用のプログラム学習ツールは、Greenfoot、Phogram、MicrosoftのSmall Basicなど、たくさんあるが、多くはプロプライエタリのツールである。Scratch、Alice、Shoesはオープンソースであり、フォーラムやチャットルームなどのサポートチャンネルを持ち、活発なコミュニティが形成されている。これらの3つの環境は、児童にプログラミングの概念を教えることを目的とする、おそらく最もオープンかつ成熟したアクセスの容易な環境だろう。