📜 ⬆️ ⬇️

Interview with John Hrvatin (John Hrvatin)

As promised, we are publishing an interview with John Hrvatin, which we took during his arrival in Moscow.

John Hrvatin (John Hrvatin) - IE9 Lead Program Manager, responsible for the software model, developer tools and standards support in IE9.


')
But, first of all, thank you very much to all the habrousers who asked their questions!

About Internet Explorer


Q. Why does Microsoft have a browser?
A. Microsoft has more than 1 billion. Windows users who spend more than half their time in Windows being online. We develop Windows Internet Explorer, first of all, for these Windows users so that they can get the best online experience. At the same time, we try to use the maximum PC capabilities: from modern hardware available in Windows through technologies such as Direct2D to the capabilities of the OS itself, for example, “Jump Lists” and “AeroSnap” functions.

Q. Will there continue to be fresh builds of Internet Explorer (Platform Preview) every 8 weeks? How do you rate this experience?
A. The experience with the release of “platform preview” versions has definitely exceeded our expectations. We are very impressed with the feedback we received when releasing intermediate versions for developers - more than 13,000 reviews on Microsoft Connect - we continued this practice by releasing IE9 Platform Preview 6 on October 28 (upd: IE9PP7 was released on November 17). With this update, developers, designers and our partners can prepare for the release of the RC version of IE9. We continue to listen and carefully study your feedback and use them in the planning of the next releases.

Q. Do you plan to do an automatic browser update (independent of Windows Update), as is done in other browsers?
A. Windows Update (WU) does a good job of keeping your browser up to date. We use this system to deliver updates almost every month and it gives high rates of installations. We also use WU to distribute new versions, but we also expect confirmation by the user, in addition to confirming that WU is ready to upgrade, so that users can decide when they are ready to switch to the new version. It also integrates with the software that manages the operating system and is used by IT specialists to control how IE updates are deployed in their infrastructure. This is especially critical for organizations whose business depends on the performance of the browser.

Q. Do you plan to make a version of IE9 for WP7? Should we expect html5 and other new standards on the phone?
A. IE9 is still under development, WP7 in some countries is already on sale and we are preparing to launch sales in other countries very soon. WP7 has a good stable version of IE installed, and we will continue to develop IE on this platform.

Q. How to install IE9 on XP? Besides Direct2D support, what else does IE9 do for XP?
A. IE9 fully utilizes the capabilities of a computer: from hardware acceleration from a GPU to operating system capabilities, for example, jump lists (JumpList). We strive to provide the user with a convenient and productive solution for working on the Internet. To achieve this, we build on the capabilities available in modern operating systems, including support for Direct2D, which is not available in Windows XP. Direct2D and related graphics upgrades are the main reason why IE9 does not work on Windows XP, but this technology is critical for IE9 in order to fully support HTML5 and not restrict web developers. You can tell the difference between IE9 and browsers that do not offer full hardware acceleration in performance tests at www.ietestdrive.com .

About the team


Q. How many people work in your team?
A. We do not disclose these numbers, but I can tell you a little about the team and how it is organized. We have several teams that specialize in various functionalities and respectively work on different parts of the browser. For example, my team is “Web Development” and we are working on the core of the platform — HTML, DOM, largely CSS, developer tools, and standards support. The other team, Web Graphics, is engaged in hardware acceleration of rendering, SVG, Canvas, CSS3, etc. And I can say with all certainty that the people who work on these tasks and all other browser features are some of the most enthusiastic and talented people from among those I've ever worked with. For example, this is the main head of the web graphics group - Ted Johnson .

About development


Q. What development tools do you use? (compilers, IDE, code analysis and performance tools?)
A. We use Visual Studio to write code. We also use several proprietary utilities to manage the process of making changes on the part of the developers and analyzing the code, manually testing, and then running the automatic testing before confirming changes to the product. To measure performance, we use the publicly available Windows Performance Tools. Our blog has a great post on this topic .

Q. How is your development process organized?
A. The main steps are: 1) data collection and feedback as part of planning future releases, 2) developing new features, and 3) stabilizing. These steps can overlap in certain areas (some functionality may already be developed and in parallel we complete the planning in another area), but in general the process looks exactly like that.

Q. How do you track browser errors and fixes?
A. We use internal tools to maintain a database of errors. External users and partners can leave their wishes and errors found through the MS Connect website and this information goes directly into our database.

Q. How many tests do you have for different standards and browser functionality?
A. VERY MUCH: D We have huge test suites - some of them run every day, some every week and some during special stages of testing the passing of tests, and all this for the already tested functions and for each new function that we add. For insights into volumes, look at CSS 2.1. For only one standard, we sent about 10,000 public tests. These are tests that meet the requirements of the W3C. There are also tests that check the interaction of various functions with other parts of the platform. This article has an interesting snippet about visiting our test lab.

Q. What development processes ensure browser security? No bugs, user security?
A. As with all Microsoft products, we use SDL . This process has already been used for many years and Microsoft has published quite a lot of materials describing how it works. I am sure - my confidence is based on my personal experience and my knowledge, not quantitative data - that our team of security engineers and our actions to close security issues are the best.

About standards


Q. How do you determine which parts of html5 or css3 can already be implemented in the browser, and which parts have not yet been established / can change and need to wait with them?
A. Our first step is to always listen to what users are saying. What do the developers expect? What are they interested in? For the functions that are implemented in the platform and which should be compatible, we begin to look at what is said in the standards. It is important that the standard is fairly stable. An alternative may be the release of prototypes or experimental support for features for which developers cannot expect them to work in all browsers or will also be supported in future versions. For those specifications that are not stable, we are joining working groups to speed up their stabilization so that we can add their support in IE and the developers can count on their support.

About Developer Tools (F12)


Q. Why can't I debug modal windows (showmodaldialog) from Developer Tools and inspect elements in them?
A. This is a consequence of how developer tools are attached to the window. To be more precise, they use functionality that is not available in a modal window and we would not want to weight the dialog boxes by adding something to them. We will think about how to improve this in the future, it will be great if you leave us your feedback on Microsoft Connect . By the way, even if some of the reviews on Connect are not accepted for changes in IE9, it is still stored in our database and can be assigned to future versions. So Connect is the best way to bring us feedback and suggestions like this.

Q. Do you plan to optimize the speed of DevTools on a large html-tree? (On big posts Habr often slows down)
A. The performance of development tools was one of the focuses when developing IE9, compared to IE8, we will significantly increase the speed of work on large HTML trees and large (more than 20,000 lines) JavaScript files. However, large trees and files always run slower than small ones. If you have examples that show particularly poor performance, post a bug on Microsoft Connect - we'll see what can be done with this.

Q. Why does the frame of the selected item not disappear when DevTools is closed?
A. It looks like a bug that would be good to send to Connect.

Q. Is it possible to remove an item from the tree?
A. Today you can make the tree fully editable and easily add or remove nodes as needed. You can also use the console to remove nodes through javascript. We do not have the built-in ability to delete a node via the context menu by pressing the right mouse button - and it would be good to add it to Connect .

Q. Will the highlight of the element appear with a margin and padding (when hovering over it or highlighted in the html-tree), as is done in firebug?
A. You can use the Layout panel, which displays the box parameters of any selected item. Adding highlight on a page is a good idea to add to Connect .

Q. Can you add a quick addition of a new style to an existing class on the HTML tab (at least as well as on the CSS tab, via the context menu)?
A. Now there is no such possibility, since the HTML tab does not have the necessary context as to which CSS file or style block you need to add the corresponding rule. This is a good suggestion to add to DevTools, but personally I, if I need to add a new rule, simply add an inline-style to a specific element or, if I need to add a completely new rule, I use the CSS tab.

Q. Why are development tools forcedly detached from a window when debugging?
A. When you reach a breakpoint, the corresponding tab is frozen. If the Dev Tools window were part of this window, it would also be suspended. Here, the isolation of IE9 tabs also plays a role, which prevents tabs from interfering in the event of a hang, and perhaps a good way out of this situation would be to transfer the debugger to the main browser window. This is just one of the points for discussion that we want to return to in future releases.

Q. Why in the development tools it is impossible to simply select a variable when debugging and drag it to the Watch panel, you need to copy and paste it manually.
A. Just right-click on the variable you want to monitor and select “add to watch” to add it to the Watch tab. That is, no copy-paste is needed. This feature works during debugging (click “start debugging”).

Q. Do you plan to add tools to check how the site looks from mobile devices? Browser mode, user agent string, window size.
A. You can set the required UA String parameters and screen sizes via DevTools.

Q. Do you plan to add a DOM mapping?
A. You can do this in the “Watch” window during debugging by simply adding a windows, document object or any other part of the DOM you are interested in to track.

About performance


Q. In the SunSpider IE9 performance test, there is a very good result. Why in the tests Kraken (Mozilla), Peacekeeper, Dromaeo (Mozilla), Google V8, the result is not so impressive?
A. When developing IE9, our main goal is to provide the best web experience on Windows. Speed ​​is definitely one of the important parts in achieving this goal, as well as, for example, making it easier for developers to create a new generation of websites and applications. We want this to work in real-life web site scripts — on standard web development patterns that web developers already know and use. We want it to work better and faster on the PC and on Windows.

To achieve this, we began by analyzing the data on patterns and practices used in real websites: what exactly they do and how. Improving performance on many different web scenarios requires more than just optimizing for passing performance tests. To learn more about the data we collected, and how we used it, check out the session with Jason Weber about developing high-performance websites .

JavaScript is the only subsystem tested in Kraken, Peacekeeper and V8 is only one component of browser performance. (Dromaeo is testing JavaScript and DOM - see this blog post for more details). Our approach to speeding up the browser on the web focuses on taking advantage of the hardware that users already have in their computers. For example, the JavaScript engine in IE9 - Chakra - simultaneously interprets, executes and compiles code, taking advantage of multi-core processors (CPU). IE9 also made a big architectural change in moving Chakra (the new JS engine) inside the browser instead of having the JS engine bolted somewhere on the side, as it is implemented in many modern browsers. This greatly improves performance in real-world scenarios (of the specified performance tests, this only affects Dromaeo, since it also tests DOM), opens up the possibility to use the ES5 programming model to access the DOM and helps to lay the right foundation for future HTML5 applications.

In addition to JavaScript, we rewrote the rendering and rendering engine so that they can take advantage of the GPU. The rendering subsystem on some websites may have no less impact on performance than the speed of JavaScript. Essentially, according to our research of some top AJAX websites (gmail, Hotmail, google docs and spreadsheets, etc.), it turns out that they spend more time rendering than in JavaScript (see this in what I’ve indicated above). And these improvements are also not taken into account in the specified performance tests.

Q. Do you plan to optimize the work of IE on a set (~ 30) of style files? (this is not in production, but during development, when it is convenient to debug and store separately, especially if they are different modules like in Drupal)
A. Meeting this request is much more difficult than it might seem. We are very careful with the use of memory, so we tightly pack information into variables and constants. Increasing this limit means increasing the number of bits used for values, which affects other stored information in the same constants and will require more memory. Of course, this is not an intractable problem, but this is not a typical scenario for the final (production) versions of the site, so we directed the available resources to solve other problems. We have no plans to make changes in this area in IE9, however, we continue to accept and carefully review the reviews.

Q. How can I disable plugins performance advisor?
A. If you are satisfied with browser performance, you can simply set a higher threshold for triggering an alert (for example, 10 seconds). You can learn more about this in this post.

About extensions


Q. Will the extension system be changed under IE9?
A. Web fragments and accelerators added in IE8 provide developers with a very simple (HTML, CSS, JS and XML) way to create extensions covering the most common scenarios. In IE9, we added browser customization capabilities through the Pinned Sites mode — favicons, JumpLists, pop-up icons, etc. In preparing the launch of IE9 Beta, we worked with more than 70 partners and we see more than 900 sites that take full advantage of the new opportunity. More details can be found here (in Russian, see here ).

Q. Will there be a convenient .NET framework for writing add-ons to IE (for example, ext. Panels), or do everything in the old-fashioned way only through COM? I am developing now ToolBar (.NET WinForms + COM), so it’s quite a burning question.
A. IE9 supports the same extensions as IE8, so existing ones will simply continue to work. However, we did not add any new functionality for developing extensions on .NET.

About the interface


Q. How to change the location of the tabs under the address bar? How to arrange the address bar under the tabs?
A. The IE9 interface is designed to leave only those browser functions that are consistent with the idea of ​​optimizing the space available to the websites themselves. We scrutinize data to understand how users use the browser, and what we saw — these data cover all types of users around the world: more than 10 million users and hundreds of millions of user sessions — so that over 97% of sessions in IE have 5 tabs or less, and more than 90% of users never open more than 8 tabs at the same time. There are not many scenarios when you need to open more tabs, and in these cases, you can easily increase the size of the area under the tabs by reducing the size of the address bar.
Sometimes we see rather funny scenarios (and this is also from my personal experience) when people use fewer tabs in one window as soon as they start using site binding. Try it yourself: look at the websites that you most often open and just pin down the ones that you always launch and within which you usually open more than one tab. Now the task of managing sites is shifted to Windows tools: you can manage sites as you manage applications instead of being limited by the browser tabs.

Q. Is the cropped eye cutter button Back forever release?
A. The IE9 interface was designed to bring to the background all the minor things, and not the first place to put the site and its contents. In this sense, placing the site on top of the back button reinforces this impression.

Q. Do you plan to add a quick access to disable image loading / flash, as done in Opera?
A. We do not plan to introduce a new way to solve this problem in IE9. But this is a good wish to add on Connect.

Q. When will you update the settings window? It seems that it has not changed for 10 years.
A. Our goal is to make sure that the user does not have to open this window, the browser should just work - and this is exactly what we put our efforts into. Basic things, like changing the home page, are on the first page and are easy to use.

Source: https://habr.com/ru/post/109431/


All Articles