8/24/2005

OSって何だ

GoogleOSとかWebOSとかの議論を最近よく目にするようになった。最初は「何だそりゃバーカ」としか思ってなかったんだけど、ちょっと考えてみると結構面白いのかも、と思い始めてきた。

UIなフロントエンド(Google DesktopとかYahoo Konfabulatorとか)とHTTPdなバックエンドが通信してクールでアルファギークなアプリができると、それがWindowsを打倒するみたいな、異常に飛躍した話だけ聞くと「バーカ」にしかならない[1]し、「OS」って言葉の響きからすればMySQLのファイルシステムとPerlモジュール+HTTPのAPIとHTMLのUIからなる「はてなOS」のほうがよっぽど近いって話だろう。

Webサービスと呼ぼうがXMLHTTPと呼ぼうがRSSと呼ぼうがフィードと呼ぼうがWeb 2.0と呼ぼうがどうでもいいが、そのあれはアプリケーション間通信インターフェイスなわけで、アプリケーション間通信というのはWindowsのようなFat OSでは目玉機能だ。WindowsにはDDEやCOMがあり、Gnome(はOSか?)にはBonoboがある。

最近じゃアプリケーション間通信は物理ハードウェアをまたがって分散していて、企業システム(の軽いヤツね)はDCOM/COM+やCORBAやJ2EE/RMIで動いている。以前は「ばらばら=分散」と捉えていたものを、今は企業ネットワーク内にあるコンピュータ資源(ハードやネットワークやソフト)を有機的に結合した全体=SOAを考えるという視点の違いはあれ、見ているものは同じで、結局アプリケーション間通信に行き着く。スケールの違いに伴う複雑さの増加はもちろんあるが、WordとExcelが一つのPC内部のバスで通信するのと、IISとMTSが100Base-TXで通信するのとは高度10,000メートルから見れば同じことだ。

「~同じこと」だとすると、KonfabulatorとWeb○☆▼!■◎★がやってるのは、インターネットをはさんだアプリケーション間通信なんだから、インターネットをPC内部のバスに、フロントGUIとバックHTTPdをWordとExcelに置き換えれば、「それ」がOSに見えるって話にもなんだかうなずけそうな気がしてくる[2]。Yahoo!は素直に最大公約数的にXMLHTTPで、Googleはその環境で最善のものを追う(ブラウザならJavascript直、Windows上なら生COM)という違いはあるにせよ[3]、OSにおけるアプリケーション間通信の部分をインターネット上で進めているという点では同志だ。

流行のWeb 2.0がOSにおけるアプリケーション間通信だとすると、そのOSって何のことだ?

考えてみれば、「これがWindows(DOSでもLinuxでも何でもいい)です」って指をさす対象なんて存在しない。指の先にあるのはシェルだったりメモリ内を移動するビットだったりするだけで、OSってこれですっていうモノなんかないんだな。OSってものが持っているいろんな側面を記述して、それでOSを記述したつもりになる[4]けど、「群盲象を評す」ってことだ[5]。ことの本質には至らない。

ということは、GoogleやYahoo!がやっているのはOSを作っていることだ、WebOSばんざーいとかいう議論は、アプリケーション間通信という面を触って得た感触としては遠くないってことだ。

ん、いや待てよ、そうするとGoogleやYahoo!ってしょせんはそのOSの中での一アプリケーションに過ぎなくて、彼ら自身がOSだとか、彼らがOSを作ってるなんてことにはならないよな。だってXMLHTTPとかJSONとかRSSとかって彼らが決めたものじゃないし。OSが持つメモリ管理やタスクスケジューラ機能みたいなのは、インターネットではルータのQoSやIPSecなんかで実現する(のかな?)わけで、GoogleやらYahoo!やらはここいらにはぜんぜん手出しできないよ。

彼らのデータセンター内ではすげーファイルシステムが稼動しているらしいけど、それって上の抽象に当てはめるとWordが自分のデータをあるときはレジストリに、あるときは設定ファイルに書き込みますってことと同じレベルの話なんで、彼らのファイルシステム=インターネットOSのファイルシステムではない。Google検索はインターネットを巨大なファイルシステムに見立ててそこからデータを取り出せるからGoogle検索はOS機能の一部だって議論もあるけど、それってGDSがWindowsマシンのHDDからデータを取り出せるって言ってるのと同じで、GDSはOSの一部ではないんだから、Google検索だってやっぱりOSの一部にはなりえない。エライのはWindowsのファイルシステムAPI(=インターネットのAPIつまりHTTP)であって、GDSはそれを利用する字義通りのアプリケーションでしかない。

じゃあやっぱりWebOSって何なんだ。

...とまあ例によってまとまらないわけでした。ちゃんちゃん。




[1]大体GoogleはAPIをWindowsに頼りっきりだし、KonfabulatorはAppleにパクられた腹いせにWindows版を開発したらYahooがお買い上げしたってわけなんだから。←コメント参照。ご指摘感謝。そのフロントはWindowsに握られているのに、そこを無視して議論してもねぇ、ってことが言いたかった(追記)。
[2]もちろんスケールの違いに伴う複雑さの増加は、「複雑さの増加」なんていうチンケな言葉でかたづけられるような問題ではない。だがこの議論では重要ではないから無視。抽象度を上げれば何でも解決できるっていうアレですよ。
[3]この違いは重要なんじゃないかと思って少し考えてみたんだけど、やっぱ放置することにした。Googleが出している「API」たちを、大それたビジョンにそって関連付けできるとは思えなかったから。単に、Mapsを開発した人はJavascriptグルで、DesktopのほうはWindows専門家だったってだけなんだろうな、きっと。Webサービス好きな人は今はAdSense APIを開発してますってことで、Web APIは放置だし。ぜんぜんビジョンなんか見えない。Google Talkは「業界標準サポート」だって。もう訳わからん。
[4]Personに関するいろんな情報を記述して、それでPersonを記述したように見せかける/思い込むFOAFと同じ。
[5]このことわざの意味は「凡人がいくら集まっても大局は見通せない・ことの本質は見抜けない」ってことで、ここでの使い方は必ずしも意味どおりではありません。文字から浮かぶイメージのほうを見る。

6 件のコメント:

ec さんのコメント...

興味深く読ませていただきました。GoogleがWeb APIを放置しているのは、個人的にもがっかりしているところです。
ところで、「KonfabulatorはAppleにパクられた腹いせにWindows版を開発した」というのは不適切だと思います。Windows版はDashboardの発表よりも前から予定されていました

toiwade さんのコメント...

抽象度の高い話しでOKなら、私が思うOSって「ウェイター」だと思う。

コンピューターはいわれたことを正確にすることだけがとりえで、しかもその際にはコンピュータのわかる言葉で正確に話す必要がある。

で、そんなのは面倒だ、ということでコンピューターと人との間を取り持つウェイター。これが私の考えるOS。

一方で、コンピューターは情報処理のための機能を提供するものと考えていて、つまり情報(データ)を蓄えること、交換(通信)すること、利用(表示)すること、が本質だと思う。

そういう意味では、「コンピューター」と同様に、「情報処理のための機能」を提供する存在として「Web(コンピューターの集合)」をとらえることもでき、その際には「コンピューター」に対する Windows 等のOS と同様に「Web(コンピューターの集合)」に対する OS も定義可能だと思う。

つまり「Web(コンピューターの集合)」の持つ情報処理のための機能をより快適に使うために、ウエイターのように働く機能を提供するものを総称して、WebOSと読んでも良いのでは。
例えば、Webにおいて情報蓄積をうまくやってくれたりする機能とか、Web 上の様々な情報をうまく見せてくれたりとか、そういう benefit があれば、Technology が何であれ、それが WebOS なのでは、と思います。でもって、Google や Yahoo は(私が勝手に考えるところの)OSとしての基本機能のうち、全てではなく一部を提供しているのでは。

あんまり練った考えではないけど、高度1000,000メートルから見れば技術論は不要だと思うので、とりあえずコメント。

# 蛇足
「GDSはOSの一部ではないんだから、Google検索だってやっぱりOSの一部にはなりえない。」とはいえ、「OSの一部」としてそういう機能があればうれしかったりしません?

Fumiaki Yoshimatsu さんのコメント...

OS=ウェイター、なるほど。僕の考えは、OSが取り持つのはコンピュータと人間ではなく、コンピュータとアプリケーション(ソフトウェア)、ということでしょうか。
Windows、Linux、のようなOSは、一度選択したら普通取り替えない(というか選択しない)けど、アプリケーションは頻繁に取り替えます。
ひるがえって、GDSからMDS、そしてまたより良いものへは頻繁に取り替えます。その意味で、GDSやGoogle検索はOSの機能ではないのでは?という感覚です。
んでもってWindowsXがMDSっぽい機能を提供するのは歓迎ですが、それをもってこの手の検索機能をOSの一部だとは呼べなくて、むしろOSにバンドルされているアプリケーションが増えた、という感じを抱きますね。Index Serverと同じで。確かにテキストのインデックスはアプリでNTFSのジャーナルはOSって、それほどの差異はどこにあるんだ?って言われると困るんですが。

toiwade さんのコメント...

最後に書かれているように、高度1,000,000メートル、あるいは10年前、現在、10年後ぐらいのスパンでOSの機能を考えれば、アプリケーションとOSの境界をがんばって定義するのはあまり意味がないかなー、と思っています。
多分 WebOS って、そういうくらいのスパンでの話ですよね?
# 3年後に WebOS が全盛になるか?っていわれると「何じゃそりゃ」ってことだと思うけど。

あと、個人的にはOSに対して強い思い入れの無く(笑)、「ソフトウェア」至上主義で、OSもアプリも「ソフトウェアの一形態でしょ」ぐらいにしか思っていないので、こういう発言になっているのかもしれません。

某とおりすがり さんのコメント...

おじゃまします。
ブラウザで使う機能を「Web“アプリケーション”」と呼ぶくらいですから、アプリケーションの基盤としてのブラウザを「Web“OS”」と呼んでもよいとは思います。既存のOSを無用とするようなブラウザを誰かが作るのか、というのはおいといて :-)

Bursting head さんのコメント...

使う側にとっては目の前の画面そのものがOSっぽいかな。
Goole Desktopなんてのができて、全画面表示で文書作ったり、保存したり、メール送ったり、写真整理したりでずーっとその中で完結するんだったらOS on OSって感じだけどOS。

その場合はWindowsのデスクトップ画面はWindows起動時のスプラッシュと同じか?

まあ真面目なOSって定義じゃないけど・・