Chrome、Firefox、Safari(WebKit)などの最新のWebブラウザのコードベースはかなり大きいです。私は特に、実装が膨大な量のコードを必要とすることを自明にしているのは不思議です。現代のWebブラウザ用のコードベースはなぜ大規模なのですか?
仮想的なブラウザが互換性の問題を避けるために、厳密なHTML5とJavaScriptのみをサポートしていた場合、コードベースはかなり小さくなりますか?
Chrome、Firefox、Safari(WebKit)などの最新のWebブラウザのコードベースはかなり大きいです。私は特に、実装が膨大な量のコードを必要とすることを自明にしているのは不思議です。現代のWebブラウザ用のコードベースはなぜ大規模なのですか?
仮想的なブラウザが互換性の問題を避けるために、厳密なHTML5とJavaScriptのみをサポートしていた場合、コードベースはかなり小さくなりますか?
、現代のブラウザが実装する必要があるもの(一部のブラウザでは、オペレーティング・システム・サービスへの外に、この作品のいくつかを押して)考えてみます。
私はおそらくいくつか不足していますが、それは私の頭の上から外れています。
さらに、GeckoとWebKitには、文字列や配列などのテンプレートライブラリがあります(C++標準ライブラリにはさまざまな欠点があります)。
この時点で、多くの「互換性ハッキング」は実際にはWeb標準の一部です。だからあなたはそれらを厳密に避けることはできません。あなたのシナリオでは、JavaScriptやHTMLについては話しますが、SVGやMathMLやCSSについては言及していません。あなたが実際にHTMLとJavaScriptを意味し、CSSやその他のものを意味しないのであれば、明らかにたくさんのコードを削除することができます。 HTML5のすべての機能と、HTML5のオーディオ機能とビデオ機能を組み込み、ブラウザのパフォーマンスを向上させたい場合は、それをもっと小さくすることはできません。
IMHOのサイズの半分 - しかし10倍にならないかもしれません。 –
2001年頃のWeb機能からCSSを差し引いて喜んでいるなら、コードの1/3程度まではほぼ確実に落ちるかもしれませんが、確かに言うのは難しいです。 –
私は考えていました - 現在のWebブラウザは標準と急速な開発に集中しています。集中したチームがスリムなバージョンを作成する作業をしていたら、私は不思議を信じています。 –
最近のWebブラウザは複雑なアプリだと思います。主に、さまざまな種類のHTML、HTML形式(XML、RSSなど)を扱う能力、CSSハンドラ、時にはJITを伴うJavascriptエンジンを処理するレンダリングエンジンがあります。
それ以外にも、プラグインのアーキテクチャとAPI、プラットフォーム間の違いを抽象化する部分があり、通常は他のアプリケーションが使用するコンポーネントを使用して構築されます。
これは非常に重要ではありません。あなたのコロラリーについては、そうだと思います。 Lynxは非常に小さく、JavascriptやファンシーなHTMLをサポートしていません。あなたの最初の質問については
Lynxは悪い例です。可能な限り最古のHTMLしかサポートしていません。問題は、最新かつ最も標準に準拠したHTML(従来の癖に関係しない)のみに限定された場合、コードベースが著しく単純化される(またはわずかに単純化される)ということでした。 – Thilo
私は、あなたがサポートする機能が少ないほど、ブラウザーに与えるリーンさを増やしたいと思っていました。プラグインAPIを取り除くと、より簡単になります。残りの機能についても同様です。 Lynxは "極端な"例です。 –
+1。 – Thilo