オブジェクトを探索する
Widgetを作り、Explorerで内部の階層構造を探索してみると、、、おもしろい、これは見てて飽きないですね。
- 画面に見えているものがCostumeではなくPlayerというのは、まだ頭が慣れてません。
- EventMapに、トリガとイベントレシーバーの間のワイヤリングが全部オブジェクトとして見えます。すごい数です。これが、http://d.hatena.ne.jp/korakurider/20050510/p3 に書いた、ScriptProcessがたくさんできることと関係ありそうな気がする。。
認知モデル
確かに内部ではPlayer/Costumeに分かれていますが、開発者でないふつうのeToys2ユーザにとっては、「CostumeをまとったPlayer」という1つの「もの」として認識すると思います。そして、それはeToysユーザが「モーフ」として認識していたものとほぼ同じ意味だと思います。
それを確かに「オブジェクト」と呼べるかもしれませんが、あくまで認知上のものであり、Player/Costumeが「オブジェクト」であるというのとは違うドメインの話です(そもそも、それらはRoleの名前であってTypeではない)。
なので、見えるものを「オブジェクト」と言っているうちはいいですが、Player/Costumeの話を持ち出すと大混乱になりそうですね。
ブラウザでコードを見る
- きれいに設計されていて読みやすいし、読んでいて気持ちがいいですね。
- CProtoObjectまである!オブジェクトモデルも含め、Squeakとは別のシステムということをやっと理解でき、認識を改めました。
開発者にとっての認知モデル
ソース上でCObject以下のクラス階層を読んだ結果。eToysユーザが認知する「もの」とはシステム内部ではプレイヤそのものに対応することがわかりました。でもワークショップの際描画したスケッチを「プレイヤ」と呼んで教えるのがいいのかは???
eToysのプレイヤは、Morphというグラフィックオブジェクトをまとって、スクリプトの動作をするためのエンジンのように動いていました。変なたとえですが、巨大ロボ(Morph)と操縦者(Player)の関係です。物と者が分割されているような感じです。
これに対して、Tweakの場合、カメレオン(Player)とその特定の見かけ(Costume)みたいな関係に感じます。Playerは物と者がひとつになったという感じです。その代わり見かけだけがCostumeに切り出されたという。
(まちがった理解をしているならそっとお教えくださいな>識者)
同じプレイヤということばでも、オブジェクトモデルの中での位置づけや役割が、eToys→Tweakで大きく違いますね。
また、Player/CostumeというのはRoleに基づいた分割として設計されているようですが、そうはいいながらPlayerはTypeとしての意味も持っているというのが、まだ慣れないところです。