前回は、コンピュータの中だけでなく、外の世界とやり取りするフィジカルコンピューティングを紹介した。新しいユーザーインタフェースを考えることで、既存の常識にとらわれない可能性を試すことができる。しかし、もし私たちの思考が用いる言語によって制限されているとするならば(サピア=ウォーフの仮説)、プログラミング言語も例外ではないのかもしれない。今回はScratchを“分解”し、その中身を観察して改造を試みる。

ソースコードの入手

 ScratchはSqueak Smalltalkで記述されている。そのソースコードを見る方法には、第3回で紹介した「Shift-Click-R」がある。しかし、これは裏技で、表示されるソースコードもバイトコードをデコンパイルしたものだった。そのため、本来のソースコードには記述されているコメントが消え、一時変数名も機械的に付けられている。

 MITメディアラボはScratchのソースコードを条件付きで公開しているので、今回はそれを使うことにする(Scratch Source Code)。このソースコードの主要なライセンス項目を以下に示す。

  1. 作成したものに「Scratch」という名前を使わないこと("Based on Scratch from the MIT Media Laboratory"を除く)
  2. 作成したものにScratchのロゴマークとネコのキャラクターを使わないこと
  3. Scratchのサイトにプロジェクトをアップロードする機能を実装しないこと
  4. 作成したものにScratchの著作権表示とライセンスを含めること
  5. 作成したソースコードを公開すること

 3番は、プロジェクト(作品)を公開する場所に互換性が無いものが混ざるのを防ぐためだ。これ以外のライセンスについては、ダウンロードしたScratchSource1.4.zipに含まれるLicense.txtを読んでほしい。zipアーカイブには、このほかに以下のファイルが含まれる。

ScratchSourceCode1.4.image
ScratchSourceCode1.4.changes
SqueakV2.sources

 ScratchSourceCode1.4.imageには、Squeak仮想マシン上で動作する環境(仮想的なメモリーイメージ)が含まれており、SqueakとScratchの本体となる。ScratchSourceCode1.4.changesは、Scratchを作るためにSqueakを変更した部分のソースコード(テキストファイル)である。SqueakV2.sourcesはSqueakのソースコード(テキストファイル)だ。

 これらの三つのファイルを、Scratchをインストールしたフォルダーにコピーする。Windowsの場合、デフォルトのインストール先は「C:\Program Files\Scratch」(64ビットの場合は、C:\Program Files (x86)\Scratch)、Macの場合はアプリケーションの中の「Scratch 1.4」である。上書きではないので、バックアップは必要ない。