ビスケットの開発思想といいますか,哲学のようなものの一つに「見えるものがすべて」という考え方があります.Scott Kimさんの論文VIEWPOINT の中でビジビリティ(Visibility)として定義されています.人間とコンピュータは同じ画面をみて協調して動くべきである,という考え方です.
たとえば画面に「+」という文字がかかれています.これは全角のプラスという文字です.見えているのは2本の直線が垂直に交差したものですが,文字です.それとは別に,画面に2本の直線で+の文字とまったく同じに見えるように描画したとします.コンピュータにとってはそれは文字ではなくて2本の直線です.同じように見えても,コンピュータの内部の扱いが違うのです.いまのコンピュータの発展の歴史を知っている人ならば,これはまったく当たり前のことで「それがどうした」ということだと思います.
ところがビジビリティの考え方では人間が見えているものとコンピュータが見えているものは同じであるべきということです.2本の直線で十字を作ったとしても,コンピュータには文字のプラスとしても認識して動いて欲しいということになります.
私が昔作ったデモシステム(研究用のちょろっと動くもの)では,キーボードから「はらた」と入力します.その後,マウスで「た」の右上に2つ点を書きます.そうするとそれは文字の「はらだ」として認識してくれる,というものでした.処理としては毎回画面に文字のピクセルとの比較をするというとても重いものでした.
そもそも紙の上にペンで何かを書く時に,定規を使おうがフリーハンドで書こうが,文字だったり線だったりという秘密の情報をインクが持っているなんて変な話で.紙に書かれたものはそこに表現されている情報がすべてと考えるべきです.
それが,コンピュータの画面に関しては,どういう方法でその画像が作られたのか,そしてコンピュータだけが知っている内部状態と,画面で見えている情報とがまったく無関係であるということが大手をふって威張ってます.
以前のブログでもオブジェクト指向の問題点を書きました.その中の「5)オブジェクト指向は人間を騙している」というのがその指摘です.内部状態とはまったく独立に人間に見せる画像を生成させてます.見え方と内部状態とが一致しているのはたまたまそういうプログラムを書いたからで,一致させないようにプログラムを書くこともできます.
ただし,考え方としては,ビジビリティは非常に優れていると思うのですが,実際のコンピュータの画面は1000×1000位の色のついた点でしかありませんから,なにかの工夫をしなければほとんど何もできません.そこにどんな工夫をすればビジビリティを保ちながらまともに使えるシステムが作れるのか.そこが難しい問題です.