ウェブとデスクトップでの永続化の意味論
『データベースを使った永続化への復讐』をすごく分かりやすく説明すると、デスクトップGUIプログラムを起動しっぱなしで数ヶ月、数年間使い続けるというイメージですよ。
なんでデスクトップとウェブで「永続化」が意味論的にこんなにも違うかというと、端的に言って、ウェブはマッシブなマルチ・ユーザー・システムだからですよね。
PCでデスクトップアプリを使う感覚のアーキテクチャで10,000人にサービスを同時提供しようと思ったら、単純計算で、デスクトップアプリが使うメモリ(例えば30MB)の10,000倍のメモリ(=300GB)が必要になる。
そんなの無理だから、ウェブではリクエスト毎にオブジェクトをデータベースから生成するアーキテクチャが選択されているということ。
しかし、そういう物理的制約を論理的に無効ないし透明にするのが「仮想化」という技術の本質なわけです。仮想記憶しかり。
だから、「仮想化技術を使ってデスクトップGUIプログラミング的にウェブ・アプリケーションをプログラミングしたい」というのは、そんなにおかしいことを言ってるつもりはない。
see also: GLASS (GemStone, Linux, Apache, Seaside, and Smalltalk) によるテスト駆動プロトタイピングへ