言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

実身や仮身

どうもネットワーク型のファイルシステムのようだった。仮身がファイル名で、実身がファイルの実体。ファイルは仮身のネットワークとして表現される。文書中に埋め込まれた仮身をクリックすると、実身が開くし、実身の姿を文書中に埋め込む事も出来る。unix 系 OS の比喩で言うと、全てのファイルがディレクトリで、ユーザに自由にディレクトリのハードリンクを許すシステムだと言える。(unix ディレクトリツリーが「ツリー状」なのは、ユーザはディレクトリのハードリンクを出来ないという制限による物だけど、この制限があるのは unix の簡潔さ現れだとも言える)。

さて、未踏で作った Skeleton では、スプレットシートの中にスプレットシートの「仮身」を入れる事が出来た。意図としては、本来一枚のスプレットシートに沢山の表を入れるべきではなくて、そういう表が必要なときは複数のスプレットシートを纏めて表示するビューのような物があれば良いはずだという理屈。失敗したのは、実用的にはそういった子スプレットシートの中にアクセスする手段が必要なのだが(例えば、ある表の合計とある表の合計を足したい場合)。スマートな方法が見つからなかった。つまり、実身を表示するという以上の UI が必要になったという事。

もう一つは、スタイルシートのような、または HyperCard のバックグラウンドのような、地と図が逆になる参照の作り方がわからなかった。あるHTMLは、スタイルシートによってガラリと違う見かけに代わる。同じスタイルシートの文書は同じ雰囲気に見える。スタイルシートへの参照が絵の参照と違う所は、スタイルシートがHTML に対してある書法を要求する所だ。「ライブラリとフレームワークの違い」を考えた事があればピンと来ると思う。絵の埋め込みが単なる「ライブラリ型」呼び出しなのに比べて、スタイルシートは「フレームワーク型」なのだ。スプレットシートではこれが出来ない結果、あっちこっち似たような表のコピーが散らばる結果となる。

全ては、同じ事を二度したくないという単純な動機から来ている。同じ画像のコピーを作りたくない。同じフォーマットを二枚作りたくない。同じプログラムは二度と書きたくない。TRON の、OS レベルで文書を埋め込めるというのは大変素晴らしい仕組みだが、それ以上の物を求めてしまう。