Open Sourceで開発されているWebブラウザの元祖、いやOpen Sourceという開発手法そのものを広く知らしめる元となったのは、LinuxなどのOSを別格とすればこのMozillaだったのではないだろうか。商用のクローズプロジェクトからOpen Sourceへの転換には、いいしれぬほどの大きな驚きがあったものだ。
ただ、そうは言うもののMozillaそのものに個人的な興味はあまりない。
Mac上に載っていながら、Mac OS Xネイティブの技術へのコミットが少ないというか、このブラウザそのものに魅力をあまり感じないのだ。
個人的にAppleScriptというテクノロジーに、Apple社以上にコミットしているので、ダウンロードしたソフトウェアがこの分野で見るものがなければ「即・ゴミ箱行き」になる。この分野でMozilla/Netscape Communicatorが行っている実装は、およそ8年前から一向に進歩がない。むしろURL Protocol Helperを登録できなくなっているなど「退化している」といってもいいぐらいだ。
WebブラウザがどのようにAppleScriptに対応していくべきか……それについてはシイラプロジェクトのmkino氏との間でいろいろ話題になったが、整理してみると2つの方向性があると思うのだ。
1つ目は、より詳細にWebブラウザ上のオブジェクトをモデリングしていく方向性。HTMLのオブジェクトモデルについてはDOM(Document Object Model)がすでにあるが、これはAppleScriptの世界観とは相容れないものである。これを徹底的にAppleScriptなモデリングをする。データマイニングなどで威力を発揮することだろう。
これが実現すると、「テーブル内の各行でデータが入っているものを取得」「テーブルの行数をカウント」といった処理が可能になる。「赤い文字の箇所だけピックアップ」ぐらいはできてもよいと思うのだが、どうだろうか?
そこまで行かなくても、現在のところどのWebブラウザもタブをオブジェクトとして扱えない。Windowとしてアクセスできればよいと思うのだが、目下のところさっぱりである。SafariがAppleScriptに対応した直後にAppleの担当にメールしたものだが、「それには気づかなかった」のセリフには「本気で言ってるのか?」と驚きを隠せなかったものだ。
2つ目は、自動処理用のコマンドを増やしていくことだ。指定のURLを開くとか、フォームにデータを入れるといったものがある。
表示中のページをPDFに書き出す機能というのもあるだろう。だが、もっと重要なのは「ページローディングが終了したかどうか」を検出するための機能だ。ダウンロードを非同期実行するため、たいていのWebブラウザにこの機能がない。これが割と不便なのだ。
その他、ブックマーク系の命令というのがない。不思議とない。Cookieへのアクセス機能もない。認証系へのアクセス機能もない。印刷機能にもまともに制御できない。なんということだろうか、割とないないづくしだ。
HTTPヘッダからの情報にアクセスできてもよいだろう。それだけのために自前でいろんなBSDレイヤー上のツールを叩いて、データを切り出すのは面倒だ。
ページ同士の差を取得するとか、どこが変更されたかを検出する機能も有効だ。選択中の文字行数や、表の行数をカウントする(selectionを取る)機能も、ないのがおかしいぐらいだ。
ひとりMozillaにかぎらず、Webブラウザについては、本当に未開のソフトであることを日々実感している。実現されている機能が少ないというべきか、表示するだけで精一杯で、それ以上のコンセプトが提示されていないというか……とにかく、自動処理的な使い勝手という意味ではエンジニアリング的な努力が「ほぼ何も」なされていないソフトであることを痛感するものである。