先日、コンピュータを持っていない友人数人と話をしたときのことである。彼らは(世界最大のバーチャルブックストア)アマゾン・コムのウェブサイトから本やCDを買いたいので、コンピュータを購入しようと考えているところだった。「インターネット」でも「ウェブ」でもなく、アマゾン・コムを利用するためにである。
(私の友人たちにコンピュータを買いたいと思わせたように)「まだコンピュータを持っていない人に『さぁ、新しいコンピュータを買おう』という気にさせるアプリケーション」は、「キラーアプリケーション」の典型である。
このアマゾン・コムの例で面白いのは、キラーアプリケーションはもはやデスクトップ用ソフトウェアでも業務用アプリケーションでもなく、独立したウェブサイトだということである。ひとたびウェブサイトをアプリケーションと考えるようになれば、それが「情報アプリケーション」あるいは「インフォウェア」とでも呼ばれる、まったく新しい種類のアプリケーションであることは、すぐにわかるだろう。
情報アプリケーションは、従来のコンピューティングモデルでは処理できない仕事をコンピュータで実行させるために用いられる。何年か前であれば、百万冊の本のデータベースを検索しいときは司書に頼んでいた。司書であれば、検索用ツールの難解な検索コマンドを知っていて、探している本を見つけらるかもしれないからである。また、何年か前であれば、本を買いたいときは本屋に行って、あまり豊富とはいえない在庫に目を通していた。ところがいまや、毎日何万人もの人々が、特別な訓練を受けたわけでもないのに、百万冊のデータベースの中から欲しい本を検索して、オンラインショッピングしている。
つまり、コンピュータが一歩前進して、人間どうしがコミュニケートするのと同じ手段で使用できるようになりつつある。ウェブ上のアプリケーションは、インターフェイスに平易な英語を使うことができるのである。ウェブ上のアプリケーションは、ソフトウェアを習得した者にとってのみ意味をなす特殊な方法で制御するのではなく、英語と絵を使って利用できる。
従来のソフトウェアは、少量の情報を大量のソフトウェアに埋め込んでいたが、インフォウェアは少量のソフトウェアを大量の情報に埋め込む。インフォウェアにおいては「操作」は一般にいたって簡単である。売るのか買うのかを選択し、データを少々入力すれば、その注文に応じた結果を得ることができる。
こうした一連の操作は、CGI(コモン・ゲートウェイ・インターフェイス)と呼ばれる、ウェブサーバの一種の拡張インターフェイスを使用したハイパーテキストリンクに組み込まれているスクリプトによって実現されるていることが多い。CGIは、ウェブサーバが外部のプログラムを呼び出し、そのプログラムのアウトプットをウェブページとして受け取る方法を定義している。CGIプログラムは、単純な計算をする小さなスクリプトである場合もある。きちんとしたバックエンドのデータベースサーバにアクセスする場合もある。しかし、たとえサイトのバックグラウンドで大きなソフトウェアエンジンが動作している場合でも、ユーザインターフェイス自体は従来のソフトウェアから構成されているわけではない。このインターフェイスは、おそらくプログラマではなく文書作成者や編集者やデザイナーが作ったウェブページで構成されているのである。
情報インターフェイスは概して動的である。たとえば、アマゾン・コムでは売上ランキングに基づいて書籍を紹介している。そして、そのリストは一時間毎に更新されている。利用者はその場でコメントや評価を書き込むことができる。そうしたコメントや評価はすぐにウェブ上に反映されて、豊富な参考情報の一部となって購買者の選択の助けとなる。オンラインによる株の売買を手助けするために設けられたサイトは、最新の株価を提示するのみならず、最新の関連ニュースやインサイダー取引に関する情報、アナリストの推薦株、さらにはユーザどうしが討議する場も提供する必要がある。このように、情報インターフェイスはたいていの場合、利用者自身が入力する情報とプログラムされたデータが豊かに混じり合っている。(電子メール、チャット、コンピュータ会議といった)専門のアプリケーションサービスにもリンクされている。
情報インターフェイスは、頻繁に繰り返される処理では純粋なソフトウェアインターフェイスより、効率の点で劣る。しかし、たまに実行する処理や、その都度実行方法が異なる処理では、はるかに有用である。とりわけ、与えられた情報をもとに何かを選択するようなインターフェイスに適している。アマゾン・コムで本やCDを買うにしても、E*Tradeで品物を購入するにしても、実際に買うという行為はやりとりのうちごく瑣末な部分にすぎない。このようなアプリケーションは、良質の情報を提供して、利用者の判断を手助けすることを最も重要な目的としている。
ウェブはコンピュータ業界全体のパラダイムを変貌させつつある。私がはっきりそれに気付いたのは、まだマイクロソフトがウェブに取りつかれる前の一九九四年のことである。その年のある日、私は日本で開催されたNTTのイベントでマイクロソフトの副社長のクレイグ・ムンディー(Crag Mundie)と(衛星中継によって)同じステージに立っていた。そのときムンディーは、マイクロソフトの「タイガー」サーバ用に計画され、ビデオオンデマンドを可能にするはずだったインターフェイスのデモンストレーションを行なった。そのインターフェイスは、一種の仮想リモートコントロールを表わすカスケーティング・メニューを持っていて、ウィンドウズの働きをエミュレーションしていた。
私たち、ウェブに関わっている者にとってきわめて明白だったのは、ビデオオンデマンドに適したインターフェイスがいつか登場するとしたら、それはウェブブラウザに似た情報インターフェイスになるだろうということである。皮肉なことに、当時でさえ、マイクロソフトはビデオオンデマンドにとって完璧なインターフェイスを持っていた。つまりCD−ROM版映画事典「シネマニア」である。映画をカテゴリーで検索し、作品に関するレビューを読み、フィルムクリップを観れば事前にやるべき作業は終わり、あとはハイパーテキストリンクをクリックしてして映画をスタートさせるだけなのである。観たい映画を選ぶ方法として、これ以上のものはない。シネマニアはこれらの機能を、最後のステップを除いてすべて備えていた。ハイパーリンクされたコンテントがネットワークサーバに接続されて初めて、シネマニアの真価が明らかになるのである。この接続がなされた瞬間に、情報それ自体を取得することが最終目的でなくなり、取得された情報が、従来のソフトウェアアプリケーションには複雑過ぎるアプリケーション空間をユーザが制御できるインターフェイスとなるのである(アマゾン・コムは、このことを明確に理解している。それゆえ、ユーザによる映画の批評などの映画に関する情報からなるインターネットムービー・データベース社を買収したのである。オンラインによるビデオの販売において有利な立場に立てるだけでなく、将来のビデオオンデマンドサービスのゲートウェイとしても優位に立てるのである)。
情報インターフェイスは意思決定の拠り所となる情報を提供するアプリケーションとして適している。しかし、一回限りの処理を実行するアプリケーションとしても非常に有用である。この種の用途に情報インターフェイスを使うのは、ある意味において、ソフトウェアのインストールに“Wizard”を使うのと同じ理屈である。
ソフトウェアに似たインターフェイスを使いながらユーザとのやりとりを行ない、しかも、動的に情報を提供できる情報アプリケーションもある。私が一番気に入っている例は、地図を提供して道順を教えてくれるアプリケーションである。このようなものがアプリケーションとして登場するなどとは数年前まで想像だにできなかった。maps.yahoo.comのようなマッピングサイトを利用すれば、ふたつの地点の住所を入力するだけで、出発点から到着点に至る道順と地図を表示してもらえる。
前置きが長くなったが、ここまで述べた事柄は、オープンソースソフトウェアの話とどのような関係にあるのだろうか?
この問に対する答は明白で、ウェブを成立させているテクノロジーの大半がオープンソースなのである。
インターネット自体、TCP/IPネットワークプロトコルやドメインネームシステム(DNS)のような基盤技術によって支えられている。そして、これらの技術はすべてオープンソース方式で開発されたものである。DNS(Domain Name System)のもっともポピュラーな実装であるBIND(Berkeley Internet Name Daemon)はオープンソースであり、それがインターネットの技術でもっとも重要なものであるということは容易に理解できる。また、ウェブブラウザにしても、ネットスケープ社のナビゲータやマイクロソフト社のエクスプローラというように、現在では商用販売されているものがほとんどであるが、それらにしても(WWWの発案者である)ティム・バーナーズ・リー(Tim Berners-Lee)がオープンソースで実装したプログラムや、オープンソースで公開したプロトコル仕様に基づいて開発されたものである。世界のウェブサーバソフトウェアの利用状況を調査し、その結果をウェブ上で報告している「ネットクラフト(Netcraft)」によれば、インターネット上で公開されているウェブサイトの過半数は、オープンソースのApacheサーバによっ運営されている(http://www.netcraft.co.uk/survey)。ウェブで動的に利用されているコンテンツの大部分は、Perl、Python、Tclなど、オープンソースのソフトウェアであるスクリプト言語を使って生成されている。
しかし、この明白な答は事の一部に過ぎない。ネットワーク接続される未来の情報アプリケーション。その土台となるのが、なぜ、ウェブなのか? なぜ、独占所有されているテクノロジーではないのかを我われは問わなければならない。
実は、マイクロソフト社はオンラインマルチメディアの実現という点で我われを先行していた。ウェブブームが一九九四年に始まったとき、同社は、オンライン百科事典であるエンカルタやオンライン映画リファレンスのシネマニアといったCD−ROM製品をすでに所有しており、マルチメディアとして将来性のあるオンラインのコンテンツを提供するという点では他企業より一歩先んじていた。同社は、オンラインネットワークを通じて情報コンテンツを提供することが重要だとさえ思っていた。
しかし、マイクロソフト社がマイクロソフト・ネットワークで提供しようとしたインターネット総合サービスにはひとつだけ問題があった。利用しようとする際のハードルが高すぎたのである。マイクロソフト・ネットワークから情報を発信するには、同社製のツールを使い、同社に申請して承認を得、使用料を払わなければならなかった。これとは対照的に、ウェブサイトは誰でも簡単に開設できた。それに必要なソフトウェアも無料だった。テキストやコンテンツを作成するための仕様も明快で、公開されており、しっかり文書化されていた。
おそらくもっと重要なのは、他人のウェブサイトからHTMLやスクリプトで書かれた機能や情報をコピーすることが正当な行為と見なされていたことだろう。ウェブでは、技術的にもコピーが可能であったし、倫理的にも許されていた。たとえば、ウェブ上で様々な機能を実装するために使われたHTML(Hyper Text Markup Language−ハイパーテキスト・マークアップ言語)のページは保存や模倣が容易にできた(マークアップ言語とは、文字列のキャラクタコード以外の様々な属性情報や組版情報などを、あらかじめ定義されたコマンドとして、文書中に記述していく方式の言語のこと)。ダイナミックコンテンツの作成に用いられるCGIスクリプトでさえコピーできたのである。プログラムは、C言語のような従来のコンピュータ言語で組んだほうが処理速度ははやい。しかし、Perlは、そのような言語をさしおいて、その使い勝手の容易さを認められてCGIのもっとも有力な言語になった。Perlは通常のアプリケーションを組むのにも使用できるし、ちょっとした素人がスクリプトを作成して特別な処理を実行させることもできる。さらに重要なのは、Perlはインタープリタ言語であり、コンパイルされないので、ユーザは、(テキストである)Perlスクリプトのソースをウェブページ上で覗くことができる。コピーすることもできる。自分の好きなように変更することもできる。そのうえ、インターネット上には、Perlの有用なスクリプトのアーカイブサイトがいくつも開設され、自由に共有できるようになっていた。つまり、HTMLとCGIとPerlの組み合わせが、誰かのウェブサイトをそのままコピーして、自分流のウェブサイトを開設することを容易にしたのである。この組み合わせによって、本職のプログラマ以外の人間がパワフルなアプリケーションを初めて作成できるようになったのである。
ソフトウェア業界は、当初、(Javaのブラウザ専用のJavaアプレットやマイクロソフトのアクティブXコントロールなどの)ウェブのアクティブコンテンツを操作するためのインターフェイスを改良しようとして失敗しているが、その理由は、それらのインターフェイスがプロのプログラマを対象としていたからである(アクティブXとは、マイクロソフト社が提唱したブラウザ上でプログラムを動かす技術)。それらは、ウェブサイトを開設しようとしている素人には容易にまねできるものでなかったし、実装できるものでもなかった。業界の開発企業はウェブをソフトウェアという観点からしか見ないで、ウェブが、アプリケーションの概念を変えつつあることを見逃しただけでなく、ウェブサイトの作り手がどのようなツールを必要としているかも見逃してしまったのである。
業界アナリストは何年も前から、PerlとCGIはそのうち新しいソフトウェアテクノロジーに取って代わられる、と予想していた。ところが、主要ウェブサイトがプロのプログラマを大勢雇い入れ、マイクロソフト社のASP(Active Server Pages)やサン・マイクロシステムズ社のJavaサーブレットといったより新しいテクノロジーのほうが性能が上だということでCGIから切り替えている今でも、Perlの人気は増すばかりである。PerlやPython、Tclといったオープンソースのスクリプト言語は、大小の規模にかかわりなくウェブサイトで使われ続けている。それは、インフォウェアアプリケーションが通常のソフトウェアアプリケーションと根本的に異なっているからである。根本的に違うツールを必要としているからである。
ヤフーのような大規模なウェブサイトに目を向けると、舞台裏で大勢の管理者とプログラマがたえずコンテンツを更新していることがわかる。ダイナミックコンテンツは自動的に生まれてくるものばかりではない。それは、しばしば手作業で作成される。そして、その際には各種のスクリプティングツールが使用されている。
「ヤフーではコンテンツを作成しません。コンテンツをまとめているのです」と『Mastering Regular Expression』(『詳説正規表現』歌代和正監訳、オライリー・ジャパン刊)の著者であり、ヤフー専属のPerlプログラマであるジェフリー・フリードルは語っている。「私たちは、数千の情報源からそれぞれ独自のフォーマットを持つデータを受け取っています。そして、大量のフィード処理作業を行なってそのコンテンツを整理したり、ヤフーのどこに配するかを決めるのです」。たとえば、フリードルは、一万五千以上の会社の名前を検索でき 名前識別プログラムを書いて、株式相場速報(quates.yahoo.com)に適切なニュースストーリーをリンクできるようにした。Perlを使えば、強力な正規表現を用いてフリーフォーマットのテキストを分析できる。フリードルがそのような名前識別プログラムを作れたのも、Perlにそのような機能があったからである。
Perlはまた、サイトを常に最新の状態に保つために活用されるシステム管理基盤の中核的な構成部分でもある。ヤフーでは、膨大な数のPerlスクリプトがサーバ群の動きや外部のサイトとのリンクを管理しており、URLが期待に添う値を返さないときはいつでもシステム管理者にその旨を自動的に知らせるようになっている。こうしたPerlスクリプトのうちもっとも有名なのは“Grim Reaper”と呼ばれるもので、URLへの自動接続が一定の回数以上失敗したら、そのページをヤフーディレクトリから自動的に削除するようになっている。
アマゾン・コムもまたPerlのヘビーユーザである。アマゾン・コムのコンテンツ作成環境を見ると、Perlに異なるツールを結びつける力があることがよくわかる。Perlは非常に優れた「接着剤言語」なのである。ユーザは、新しい文書を作成し、その中からPerlプログラムを呼び出す。すると、そのプログラムが、まず部分的に完成したSGML文書を生成し、次に(ユーザの選択に応じて)マイクロソフトワードないしGNU Emacsを起動する。そして同時に、バージョン管理システムCVS(Concurrent Versioning System)とアマゾン・コム自家製のSGMLツールを連動させる。アマゾン・コムのSGMLのクラスは、単一のソースベースから、ウェブサイトの異なるセクション(たとえば、グラフィックを伴うHTMLと伴わないHTML)を生成するのに使用されている。Perlベースのパーサーが、SGMLをHTMLに変換した後、コンテンツの作成者が変更を承認するようになっている。
Perl言語は「インターネットの粘着テープ」とも呼ばれている。そして本物の粘着テープと同様に、ありとあらゆる予期せぬ使われ方をしている。ウェブサイトは、粘着テープを使って組み立てられた映画のセットと同じで、一日で開設されたり撤収されたりすることも珍しくない。ウェブサイトと映画のセットは、小回りのきく道具(ツール)を必要とし、迅速かつ効果的に問題を解決しなくてはならない点でも似ている。
ところで、マイクロソフト社は、アクティブXによってインフォウェアをソフトウェアに逆戻りさせようとして失敗した。同社の失敗は、コンピュータ業界に典型的なパラダイムシフトがあったことを意味している。つまり、マーケットの特定のセグメントが成熟すると、そのセグメントで以前から活動している者は、現状に対して多大な利害関係を持つようになる。そのため、いかなるものであれ本質的に新しいものを受け入れることが難しくなる。新しいマーケットに新参者(フィリップ・カーンの言葉を借りれば「野蛮人」)が登場することになる。
マイクロソフト社もIBMを追い越してコンピュータ業界のトップに君臨するようになったが、それこそ一番最近に起こった新旧交代の典型である。IBMがマーケットをマイクロソフトに明け渡すはめになったのは、計算機センターで使う大型コンピュータから事務机で使うデスクトップへと主力商品が移行していることを同社が見抜けなかったからだけではない。固有なコンピュータから、流通商品としてのコンピュータへのパラダイムシフト、ハードウェアからソフトウェアへというパラダイムシフトが起こっていることを同社が見抜けなかったからである。
そして、今度はマイクロソフト社がIBMと同じことをしている。マイクロソフトは現在様々な情報ビジネスに参入しようとしているが、同社が今まで開発してきたようなソフトウェアはもはやコンピュータビジネスにおいて価値を生み出す主要な駆動力ではないということに未だ気づいていない−おそらくこれからも気づくことなく、今まで通りのマイクロソフトであり続けるのだろう。
IBMが支配的な地位にあったころはハードウェアこそが最有力商品であった。コンピュータビジネスに参入しようとする際の敷居も高かった。大半のソフトウェアはハードウェアベンダーか、その傘下にあるソフトウェアベンダーが開発していた。
PCがプラットフォームとして利用できるようになったこと、そしてUNIXのようなオープンなシステムがプラットフォームとして発達したことによって、業界のルールは一変した。突如として業界参入への敷居が低くなり、ミッチ・ケイパー(ロータス社)やビル・ゲイツといった企業家たちが登場してきたのである。
ウェブの黎明期を振り返ると、同じようなパターンを見出せる。マイクロソフト社がデスクトップソフトウェア市場を独占したことで、ソフトウェアビジネス参入への道はぐんと狭められてしまっていた。おまけに、マイクロソフトが他社の参入に対して巧妙な障壁を作ったために、ソフトウェアアプリケーションはますます複雑になってしまった。もはや、一人のプログラマがガレージで(あるいは屋根裏部屋で)画期的な製品を作ることはとても難しくなっていたのである。
オープンソースソフトウェアは、ソフトウェア市場参入への道を広げている。これが、オープンソースソフトウェアについて言えるもっとも重要なポイントであろう。オープンソースソフトウェアは無料で試せる。自分だけのカスタムバージョンを、やはり無料で作ることができる。自由な立場にある多く人たちがソースコードを入手して吟味することができる。ある機能が気に入らなければ、誰でも修正・変更できる。削除してしまうこともできる。実装方法が気にいらなければ、別の方法で実装することもできる。変更された部分のソースコードがコミュニティに還元されれば、大勢の人たちがそれをすばやく採用して、使用することができる。
そのうえ、開発者たちは(少なくとも最初のうちは)目の前の問題を解決することに専念している。ビジネス的野心でソフトウェアを開発しているわけではないので、好意的な環境で開発物をテストすることができる。しばしば言われてきたように、オープンソースの開発方式は、「かゆいところに手が届く」開発方式なのである。(インターネット上での)分散型開発というパラダイムゆえに、オープンソースソフトウェアは、ユーザの手で書き加えられる新しい機能によって、設計されるのと同じ速度で「進化する」のである。
現に、市場の進化の力が自然の「意図通りに」より自由に発揮されるのは、取引上の障害や抱き合わせ販売といった、不適応者の生存を助ける人工補完装置に相当するものに邪魔されない場合なのである。