HyperCard

Bill AtkinsonがHyperCardを作っているときに、最初はスタックの中ではひとつのバックグラウンドしか使えないようになっていた。が、「いろいろな人」が複数のバックグラウンドが使えないと不便だよ、と言ったのだが、Billはその変更をするには何ヶ月もかかりそうだから、と言って困っていた。でも、Tedが「バックグラウンドをカードの一種にすれば良いんだよ」と言ったところ、Billはああそうか、と言って数日でその変更を実装した、というエピソードがあるそうである。simplicityとgeneralityに関する良い逸話かもしれん。Bill AtkinsonはUCSD出身だけに強いPascalファンで、HyperCardもObject Pascalで書かれていたそうである。が、余り内部的にはオブジェクト指向的ではなかったので、カラー化などが難しかった原因となったらしい。

スタックの再生しかできないHyperCardでコードを書けるようにするために、フィールドの中身をHyperTalkのコードとしてスタックに追加する、というカードを作っておいて、そのフィールドを編集できるようにしたスタックを見せてくれた。内部実装はオブジェクト指向的ではなくても、メタの概念をエンドユーザーにきれいに見せているところがすばらしいと思われる。