読者です 読者をやめる 読者になる 読者になる

ブラウザが遅くて良いなんて誰が言った?

ここ最近続けていろんな人に言われたが完全に間違っているので、ここでも反論しておく*1

彼らの主張はこうだ。

「ブラウザにスピードを求めている人なんていない。変なスピード競争みたいのが起きているけど、本当にそれを必要とするようなことはほとんどない。現在、IE7を使っているけど、これで遅いなんて感じたことがない」

それは当たり前。ウェブ製作者/ウェブ開発者は多くのユーザーに満足してもらうようにウェブサイトやウェブアプリケーションを開発する。そうすると今では、IE7をターゲットにせざるを得ない。そのため、本当はもっと凝ったことをしたかったとしても、IE7で使い物にならないくらい遅かったら、アプリケーションの機能を制限せざるを得ないのだ。

いくら64ビットのほうが速いからと言って、汎用のアプリケーションを64ビットマシンで動作させることを前提として開発するだろうか? ニッチなマーケットのものであれば、それも良いかもしれない。だが、汎用アプリケーションであれば、市場に普及しているPCをターゲットにしてアプリケーションを開発するだろう。その結果、いくつかの機能はまだハードウェアが追いついていないとして搭載をあきらめるか別の手法を用いたものとするだろう。それが一般ユーザーを対象にするということだ。

ウェブサイト/ウェブアプリケーションも同じであり、最初から現在市場の大多数を占めているいくつかのOSとブラウザにおいて快適に動作するように開発される。そのため、もし特定のブラウザで高速に動作するようにアプリケーションを書けたとしても、それをそのままリリースはしないのだ。

そもそもスピードが速いということは、本当はそれだけで実はかなりすごいことだ。その昔、プロセッサの世界では、RISC vs. CISCというような宗教戦争があったり、SPECfpやSPECintなどでスピードだけを競う時代があった。スピードだけを競うことは確かに不毛ではあったのだが、それでも、スピードが速いということだけで実現できる世界というもの確実にあった。当時世界最速であった*2 Alphaプロセッサのスピードは驚異的であり、1999年にWindows NTでのAlphaプロセッサのサポートの打ち切りが発表されると、一部のCADメーカーは悲鳴を上げたという。Alphaなしでは、彼らのCADアプリケーションは使い物にならなかったからだ。また、今でもある某グループウェアも同じだったと聞く。大量の複雑なデータベース処理を行うためには、Alphaサーバーでないと処理しきれないケースが多かったらしい。つまり、スピードが速いということだけで、新たな市場を生む。あくまでもニッチな市場だからこそ許されたことだろう。

上で説明したような、極限までスピードを極めるウェブサイト/ウェブアプリケーションはまだそう多くはない。だが、今後ますますクラウドが普及し、クラウド側での処理とクライアント側での処理を適切に分散するようになった場合、今のままではクライアントが足を引っ張る可能性がある。

Let's make the web faster で書かれているように、ウェブ開発者の努力で高速化が図られる部分も多い。だが、今後のさらなるウェブ環境の向上のためには、クライアント側の環境を改善することも必要だ。そのためには、ベンダーはさらなるパフォーマンス向上に努めるのと同時に、バージョン間の互換性を維持することでユーザーのアップグレードの敷居を下げるようにする必要があるだろう。

[補足]PCアプリケーションの場合は、ハードウェアのスペックやOSのバージョンなどにより、動作するコードを切り替えることで、速いマシンでは高速に、遅いマシンでもそれなりに動作させることができる。もちろん、ウェブアプリケーションでも同じことはできるので、今後もしかしたら、ブラウザの種類やバージョン、またはウェブ標準への準拠具合などにより、実際のアプリケーションの挙動が変わるようなことが、今よりももっと多くなるかもしれない。それはそれで不幸なことだ*3

*1:あ、俺のことだと思った人、会社関係の人ならば、あなたではないです。会社関係のことはここでは書かないので。それ以外にた〜くさんの人から、何のいじめだと思うくらい同じことを言われているので、あなたのことではない(と思う)

*2:と今でも信じている (^^;;;

*3:が、現実解なのかもしれない