今回から2回に分けて、Lunascapeのトリプルエンジン実装に関する設計を少々お話します。
前編としてトリプルエンジンアーキテクチャの技術的な思想の、
後編として思想に基づく内部設計の一部をお話したいと思います。
Lunascapeのトリプルエンジンについては、技術面でグローバルに高い評価をいただいております。
一方で、「人のふんどしで相撲を取っているだけではないか?」といった旨の評価も散見されます。
これについては技術的な側面から、ごく一部については「YES」、しかし他の多くの部分については「NO」、と言えます。
"レンダリングエンジン"の基本機能は「HTMLファイルを解析し、描画すること」である、とみなします。
この部分に関してのみを見れば、一部の例外を除きLunascapeでは新規の自前の実装を持ちません。
これが「YES」の部分になります。
この基本機能のみについて利用し、基本機能のみをあてにしたサイトを閲覧するのであれば、
それぞれの"レンダリングエンジン"の「標準実装」のブラウザを利用しても、大きな違いはないと言えます。
どのブラウザで表示しても、多少の嗜好の差はあれど本質的に得られる視覚情報に大差はないためです。
一方で、最新の"レンダリングエンジン"であるTrident/Gecko/WebKitは、基本機能以外の部分で多くの特性を備えています。
それは機能の追加であったり、特定の処理の速さであったり、描画方法の"クセ"だったりしますが、
これらの「特性」をあてにして初めて生まれるサイト提供者や利用者にとっての付加価値は莫大なものであり、
いまやそれらの付加価値こそがインターネットの価値の大半を形成しているといっても過言ではないと思います。
例えばjavascript、Flash、各種メディアプレーヤー、印刷機能といったものが挙げられますが、さらに日々進化を続けています。
これらの付加機能を利用する時、「標準実装」のブラウザ利用者は時として不都合にあたります。
そこに、Lunascapeがトリプルエンジンを融合したことの意味の多くが含まれています。
これが「NO」の部分になります。
不都合は多岐にわたりますが、Lunascapeのトリプルエンジンの技術的な第一の目標は、
それらの不都合を解決し、あまねくサイトを閲覧できる手段を提供することです。
第二の目標は、不都合を意識せずに利用できる(=ブラウザが自動的に解決する)ことです。
以下は一例です。
・サイトの表示自体ができない
機能的な制約、サイト提供者側の都合など様々な理由から全く利用ができないケース。
・サイトの表示が崩れる
表示自体はされるのだが、特定レンダリングエンジンの描画方法の"クセ"を見込んで作成されているため、
それ以外のレンダリングエンジンで表示すると崩れたり一部の要素が視認できないケース。
・サイトの表示が遅い
特定レンダリングエンジンの高パフォーマンスを見込んで作成されているため、
一部のレンダリングエンジンでのレスポンスが遅いケース。
次回は様々な不都合をLunascapeのトリプルエンジンがどのように解決しているか、内部的な設計も交えてお話します。
Posted
2010/1/22 10:55
by
rudo