約束どおり、私たちはジョン・クルバチンとのインタビューを公開しています。これは、モスクワに到着したときに撮影したものです。
John Hrvatinは、プログラミングモデル、開発者ツール、およびIE9標準のサポートを担当するIE9リードプログラムマネージャーです。
しかし、まず第一に、質問をしてくれたすべてのhabrayuzerに感謝します!
Internet Explorerについて
Q. Microsoftに独自のブラウザーがあるのはなぜですか?A.マイクロソフトには10億以上あります。 オンライン中に半分以上の時間をWindowsで過ごすWindowsユーザー。 主にこれらのWindowsユーザー向けにWindows Internet Explorerを開発しています。これにより、最高のオンラインエクスペリエンスを得ることができます。 同時に、Windowsで使用可能な最新のハードウェアからDirect2Dなどのテクノロジーを介して、ジャンプリストやAeroSnap機能などのOS自体の機能に至るまで、最大限のPC機能を使用しようとします。
Q. 新しいInternet Explorer(プラットフォームプレビュー)ビルドは8週間ごとにリリースされ続けますか? この体験をどのように評価しますか?A.プラットフォームプレビューリリースの経験は、私たちの期待を確実に上回りました。 開発者向けの中間バージョン(Microsoft Connectで13,000以上のレビュー)をリリースすることで受け取ったフィードバックに非常に感銘を受けました。10月28日にIE9 Platform Preview 6をリリースすることでこのプラクティスを継続しました(更新:
IE9PP7は 11月17日
にリリースされました)。 このアップデートにより、開発者、デザイナー、およびパートナーはIE9のRCバージョンのリリースに備えることができます。 私たちはあなたのフィードバックを聞き、注意深く研究し続け、それらを将来のリリースの計画に使用します。
Q. 他のブラウザーで行われているように、ブラウザーの自動更新(Windows Updateに依存しない)を行う予定はありますか?A. Windows Update(WU)は、ブラウザーを最新の状態に保つのに適しています。 このシステムを使用してほぼ毎月更新を配信し、高いインストール率を実現します。 また、WUを使用して新しいバージョンを配布しますが、WUから更新する準備ができていることを確認することに加えて、ユーザーからの追加の確認も期待するため、ユーザーはいつ新しいバージョンに切り替える準備ができているかを判断できます。 また、オペレーティングシステムを管理するソフトウェアと統合され、IT専門家がIE更新プログラムをインフラストラクチャに展開する方法を制御するために使用します。 これは、ビジネスがブラウザの健全性に依存している組織にとって特に重要です。
Q. WP7用のIE9バージョンを作成する予定ですか? 電話はhtml5およびその他の新しい標準のサポートを期待すべきですか?A. IE9はまだ開発中です。WP7は一部の国ですでに販売されており、すぐに他の国で販売を開始する準備をしています。 WP7にはIEの安定したバージョンがあり、このプラットフォームでIEを開発し続けます。
Q. IE9をXPにインストールする方法は? Direct2Dのサポートに加えて、IE9はXPを許可しませんか?A. IE9は、GPUからのハードウェアアクセラレーションからオペレーティングシステムの機能(ジャンプリスト(JumpList)など)まで、コンピューターの機能を最大限に活用します。 インターネットで作業するための便利で生産的なソリューションをユーザーに提供するよう努めています。 これを実現するために、Windows XPでは利用できないDirect2Dのサポートなど、最新のオペレーティングシステムで利用できる機能を基盤にしています。 IE2がWindows XPで動作しない主な理由はDirect2Dと関連するグラフィックの更新ですが、この技術はIE9がHTML5を完全にサポートし、Web開発者を制限しないために重要です。 IE9と、
www.ietestdrive.comのパフォーマンステストで完全なハードウェアアクセラレーションを提供しないブラウザーの違いを評価できます。
チームについて
Q. チームで働く人は何人ですか?A.これらの数値は公開していませんが、チーム自体とその編成方法について少しお話しできます。 さまざまな機能を専門とし、それに対応してブラウザのさまざまな部分に取り組んでいるチームがいくつかあります。 たとえば、私のチームは「Web開発」であり、プラットフォームの中心であるHTML、DOM、主にCSS、開発者ツール、標準サポートに取り組んでいます。 別のチーム-Web Graphics-は、レンダリング、SVG、Canvas、CSS3などのハードウェアアクセラレーションに取り組んでいます。これらのタスクやその他のすべてのブラウザー機能に携わる人々は、最も熱心で才能のある人々です。一緒に仕事をしたことがある人たちの中から たとえば、ここにWebグラフィックグループの代表である
Ted Johnsonがいます。
開発について
Q. どの開発ツールを使用していますか? (コンパイラ、IDE、コード分析およびパフォーマンスツール?)A. Visual Studioを使用してコードを記述します。 また、いくつかの独自のユーティリティを使用して、開発者が変更を加え、コードを分析し、製品の変更を確認する前に自動テストを実行するプロセスを管理します。 パフォーマンスを測定するには、公開されているWindowsパフォーマンスツールを使用します。 私たちのブログには、
このトピックに関する素晴らしい投稿があります 。
Q. 開発プロセスはどのように編成されていますか?A.主な手順は、1)将来のリリースの計画の一環としてデータとフィードバックを収集すること、2)新機能を開発すること、3)安定化することです。 これらの手順は、別々の領域で互いに重ね合わせることができます(一部の機能は既に開発されている可能性があり、同時に別の領域で計画を完了しています)が、一般的にプロセスはそのように見えます。
Q. ブラウザのエラーを追跡して修正するにはどうすればよいですか?A.内部ツールを使用して、バグデータベースを管理しています。 外部ユーザーとパートナーは、MS Connect Webサイトで見つかった希望とエラーを残すことができ、この情報は直接データベースに送信されます。
Q. さまざまな標準およびブラウザ機能について、いくつのテストがありますか?A.非常に多く:D巨大なテストスイートがあります-それらの一部は毎日、毎週、一部はテストをチェックする特別な段階で起動されます。これらすべては、既にテストされた機能と追加するすべての新しい機能に対して行われます。 範囲を理解するには、CSS 2.1をご覧ください。 1つの標準だけで、約10,000件の公開テストを送信しました。 これらは、W3Cの要件を満たすテストです。 プラットフォームの他の部分とさまざまな機能の相互作用をテストするテストもあります。
この記事には、テストラボへの訪問に関する興味深いスニペットがあります。
Q. ブラウザのセキュリティを確保する開発プロセスは何ですか? エラーなし、ユーザーセキュリティ?A.すべてのマイクロソフト製品と同様に、
SDLを
使用しています 。 このプロセスは長年使用されており、マイクロソフトはその仕組みを説明する資料を非常に多く公開しています。 私の確信は、量的データではなく、個人的な経験と知識に基づいています。セキュリティエンジニアのチームとセキュリティ問題を解決するための行動が最善であると確信しています。
規格について
Q. html5またはcss3のどの部分を既にブラウザーに埋め込むことができ、どの部分がまだ解決されていない/変更できるので、それらを待つ必要があるかをどのように判断しますか?A.最初のステップは、ユーザーの発言を常に聞くことです。 開発者は何を期待しますか? 彼らは何に興味がありますか? プラットフォームに実装されており、互換性があるはずの機能については、標準が何を言っているかを調べ始めます。 標準が十分に安定していることが重要です。 代替案としては、プロトタイプのリリース、または開発者がすべてのブラウザで動作することを期待できない機能の実験的サポート、または将来のバージョンでもサポートされる機能があります。 安定していない仕様については、IEにサポートを追加し、開発者がサポートを期待できるように、安定化を加速するためにワーキンググループに参加しています。
開発者ツール(F12)について
Q. 開発者ツールがモーダルウィンドウ(showmodaldialog)をデバッグし、それらの要素を検査できないのはなぜですか?A.これは、開発者ツールがウィンドウにどのようにアタッチされるかによる結果です。 もっと正確に言うと、モーダルウィンドウでは利用できない機能を使用しているため、ダイアログボックスに何かを追加してダイアログボックスを大きくしたくありません。 今後、これを改善する方法を検討し
ます。MicrosoftConnectに関するフィードバックをお寄せください。 ところで、Connectのレビューの一部がIE9に変更を加えるために受け入れられない場合でも、それはデータベースに保存されており、将来のバージョンに割り当てることができます。 したがって、このようなフィードバックや提案を得るには、Connectが最適な方法です。
Q. 大きなHTMLツリーでDevToolsの速度を最適化する予定はありますか? (大規模な投稿では、Habrはしばしばスローダウンします)A.開発ツール
の生産性はIE9の開発における秘oneの1つでした。IE8と比較すると、大きなHTMLツリーと大きな(20,000行を超える)JavaScriptファイルでの作業速度が大幅に向上しました。 ただし、大きなツリーとファイルは、常に小さなツリーとファイルよりも実行速度が遅くなります。 特にパフォーマンスが低い例を示している場合は、Microsoft Connectに
バグを
投稿してください。それに対して何ができるかを確認します。
Q. DevToolsを閉じても、選択したアイテムのフレームが消えないのはなぜですか?A. Connectに送信すると良いバグのように見えます。
Q. ツリーからアイテムを削除する機能は追加されますか?A.現在、ツリーを完全に編集可能にし、必要に応じてノードを簡単に追加または削除できます。 コンソールを使用して、JavaScript経由でノードを削除することもできます。 マウスの右ボタンをクリックしてコンテキストメニューからノードを削除する組み込み機能はありません。
これをConnectに
持ってくると便利です。
Q. 要素は、マージンとパディングで強調表示されますか(HTMLツリーでホバーまたは強調表示する場合)、firebugではどのように行われますか?A. 「レイアウト」パネルを使用して、選択したアイテムのボックスパラメータを表示できます。 ページに強調表示を追加することは、
Connectに
追加することをお勧め
します 。
Q. HTMLタブ(および少なくともコンテキストメニューを使用したCSSタブ)の既存のクラスに新しいスタイルをすばやく追加できますか?A. HTMLタブには、対応するルールを追加する必要のあるCSSファイルまたはスタイルのブロックに関する必要なコンテキストがないため、これは不可能です。 これはDevToolsに追加することをお勧めしますが、個人的に、新しいルールを追加する必要がある場合は、特定の要素にインラインスタイルを追加するか、完全に新しいルールを追加する必要がある場合は、CSSタブを使用します。
Q. デバッグ時に開発ツールがウィンドウから強制的に切り離されるのはなぜですか?A.ブレークポイントに到達すると、対応するタブがフリーズします。 開発ツールウィンドウがこのウィンドウの一部である場合、一時停止します。 IE9のタブの分離もここで役割を果たします。これは、フリーズの発生時にタブが干渉するのを防ぎます。おそらく、この状況から抜け出す良い方法は、デバッガをメインブラウザウィンドウに転送することです。 これは、今後のリリースで話したい議論のポイントの1つにすぎません。
Q. デバッグ時に変数を選択してウォッチパネルにドラッグするだけではできないのはなぜですか。手動でコピーして貼り付ける必要があります。A.追跡する変数を右クリックし、「監視に追加」を選択して「監視」タブに追加します。 つまり、コピーアンドペーストは必要ありません。 この機能は、デバッグ中に機能します(「デバッグの開始」をクリックします)。
Q. モバイルデバイスからサイトがどのように見えるかについて検証ツールを追加する予定はありますか? ブラウザモード、ユーザーエージェント文字列、ウィンドウサイズ。A. DevToolsを使用して、必要なUA文字列パラメーターと画面サイズを設定できます。
Q. DOMマッピングを追加する予定ですか?A.デバッグ中に「ウォッチ」ウィンドウでこれを行うには、Windowsオブジェクト、ドキュメント、または追跡するDOMのその他の部分を追加するだけです。
パフォーマンスについて
Q. パフォーマンステストで、SunSpider IE9は非常にまともな結果を示しています。 Kraken(Mozilla)、Peacekeeper、Dromaeo(Mozilla)、Google V8のテストで、結果がそれほど印象的ではないのはなぜですか?A. IE9を開発する際の主な目標は、Windowsで最高のWebエクスペリエンスを提供することです。 開発者が新しい世代のWebサイトやアプリケーションを簡単に作成できるようにするなど、スピードはもちろん、この目標を達成するための重要な要素の1つです。 このすべてを、Webサイトで使用される実際のスクリプトで、つまりWeb開発者がすでに知って使用している標準のWeb開発パターンで動作するようにしたいと考えています。 これがPCとWindowsでより良く、より速く動作することを望んでいます。
これを実現するために、実際のWebサイトで使用されているパターンとプラクティスに関するデータの分析から始めました。 多くの異なるWebシナリオでパフォーマンスを改善するには、パフォーマンステストのために最適化するだけでは不十分です。 収集したデータとその使用方法の詳細については、
高性能Webサイトの開発に関する Jason Weberとのセッションをご覧ください。
JavaScriptはKrakenでテストされた唯一のサブシステムであり、PeacekeeperとV8はブラウザーパフォーマンスのコンポーネントの1つにすぎません。 (DromaeoはJavaScriptとDOMをテストしています-詳細については
このブログ投稿を参照してください)。 Web上のブラウザを高速化するための私たちのアプローチは、ユーザーが既にコンピューターに搭載しているハードウェアを活用することに焦点を当てています。 たとえば、IE9のJavaScriptエンジン-Chakra-は、マルチコアプロセッサ(CPU)を利用して、コードを並列で解釈、実行、コンパイルします。 IE9は、多くの最新のブラウザーで実装されているように、JSエンジンを横にねじ込むのではなく、ブラウザー内でChakra(新しいJSエンジン)を移動するために大きなアーキテクチャ変更を行いました。 これにより、実世界のシナリオでのパフォーマンスが大幅に向上します(上記のパフォーマンステストでは、DOMもテストするため、Dromaeoのみに影響します)。ES5プログラミングモデルを使用してDOMにアクセスする可能性を開き、将来のHTML5アプリケーションの適切な基盤を築きます。
JavaScriptに加えて、GPUを利用できるようにレンダリングおよびレンダリングエンジンを書き直しました。 一部のWebサイトのレンダリングサブシステムは、JavaScriptの速度ほどパフォーマンスに影響を与えることはありません。 基本的に、いくつかのトップAJAX Webサイト(gmail、Hotmail、Googleドキュメント、スプレッドシートなど)の調査から、JavaScriptよりもレンダリングに時間がかかることがわかりました(セッションIでこれを参照してください)上記のように)。 また、これらの改善もこれらのパフォーマンステストでは考慮されません。
Q. 多くの(〜30)スタイルファイルでIEを最適化する予定はありますか? (これは本番環境ではなく、開発中です。特に、Drupalのように異なるモジュールである場合は、それらを個別にデバッグして保存するのが便利です)A.この要求を満たすことは、見かけよりもはるかに複雑です。 メモリを非常に慎重に使用するため、情報を変数と定数にしっかりと詰め込みます。 この制限の増加は、値に使用されるビット数の増加を意味します。これは、同じ定数の他の保存情報に影響を与え、より多くのメモリの割り当てが必要になります。 もちろん、これは不溶性の問題ではありませんが、これはサイトの最終(実稼働)バージョンの典型的なシナリオではないため、利用可能なリソースを他の問題を解決するように指示しました。 IE9でこの領域に変更を加える予定はありませんが、引き続きレビューを受け入れ、慎重に検討します。
Q. プラグインパフォーマンスアドバイザーを無効にする方法は?A.ブラウザのパフォーマンスに満足している場合は、単純に警告のしきい値を高く設定することができます(たとえば、10秒)。 詳細については、この投稿をご覧ください。
拡張機能について
Q. IE9の拡張システムは変更されますか?A. IE8に追加されたWebスライスとアクセラレータは、最も一般的なシナリオをカバーする拡張機能を作成するための非常に簡単な(HTML、CSS、JS、およびXML)方法を開発者に提供します。 IE9では、ピン留めサイトモード(ファビコン、ジャンプリスト、ポップアップアイコンなど)を使用してブラウザーをカスタマイズする機能を追加しました。 IE9ベータの開始に備えて、70以上のパートナーと協力し、新しい機会を最大限に活用する900以上のサイトを確認しました。 詳細については、
こちらをご覧ください (ロシア語、
こちらをご覧ください )。
Q. IE用のアドオン(追加のパネルなど)を作成するための便利な.NETフレームワークはありますか、それともすべてがCOMを介してのみ古い方法で実行されますか? 私自身は現在、ToolBar(.NET WinForms + COM)を開発しているので、かなり難しい質問です。A. IE9はIE8と同じ拡張機能をサポートしているため、既存のものは引き続き機能します。 ただし、.NETで拡張機能を開発するための新しい機能は追加しませんでした。
インターフェースについて
Q. アドレスバーの下のタブの場所を変更する方法は? アドレスバーをタブの下に配置する方法は?A. IE9インターフェイスは、Webサイト自体が利用できるスペースを最適化するという考えと一致するブラウザー機能のみを残すように設計されています。 ユーザーがブラウザをどのように使用しているか、そして私たちが見たものを理解するためにデータを注意深く調査します-このデータは世界中のあらゆるタイプのユーザーをカバーします:1000万人以上のユーザーと数億のユーザーセッション-これはIEのセッションの97%以上です5つ以下のタブがあり、90%以上のユーザーが同時に8つ以上のタブを開くことはありません。 さらに多くのタブを開く必要があるシナリオはあまりありません。これらの場合、アドレスバーのサイズを小さくすることで、タブの下の領域のサイズを簡単に増やすことができます。
ウェブサイトのピン留めの使用を開始するとすぐに、1つのウィンドウで使用するタブが少なくなるという非常に面白いシナリオが見られます(これも私の個人的な経験によるものです)。 自分で試してみてください。最も頻繁に開くサイトを見て、常に起動し、通常は複数のタブを開くサイトを固定してください。 これで、サイトを管理するタスクがWindowsの手段に移行しました。ブラウザーのタブの機能に制限されるのではなく、アプリケーションを管理するのと同じ方法でサイトを管理できます。
Q. トリミングされたカッティングアイボタンは、リリースに永久に入りますか?A. IE9インターフェースは、サイトとそのコンテンツを配置する最初の場所ではなく、すべての二次的なものをバックグラウンドに持ってくるために設計されました。 この意味で、サイトを戻るボタンの上に配置すると、この印象が高まります。
Q. Operaで行われているように、イメージ/フラッシュのダウンロードを無効にするためのクイックアクセスを追加する予定はありますか?A. IE9でこの問題を解決する新しい方法を導入する予定はありません。 ただし、Connectを追加することをお勧めします。
Q. 設定ウィンドウはいつ更新されますか? それは10年間変わっていないようです。A.私たちの目標は、ユーザーがこのウィンドウを開く必要がないことを確認することであり、ブラウザは正常に動作するはずです-これがまさに私たちが努力していることです。 ホームページの変更などの基本的な事項は最初のページに配置され、使いやすいです。