Why Edge is better than Internet Explorer

Published by at

There's an interesting (though long) post up on Microsoft's site at the moment looking at all the ways in which the new Edge browser (née Project Spartan) has been engineered for greatest 'interoperability'. It's an impressive read, though at the end of the day it shows that Edge contains just as many concessions to standards variations as IE before it - it's just that the concessions are more modern! You'd have thought that, in 2015, we'd finally have a standard that everyone codes web pages to - but, as ever, the devil is in the details - or, in this case, in the skewed implementation of the standard by other platforms and web developers.

Example images

From the Microsoft blog post:

We’ve implemented over 45 new standards — more than we’ve ever done in one release. We also made thousands of large and small improvements to make Edge more interoperable with other browsers to ensure that you get a more seamless web development experience.

The Web is built on the principle of multiple independent, interoperable implementations of web standards, and we feel it is important do our part in moving the Web forward. True interoperability means that all web content, browsers, and specifications align on the same well-defined behavior.

As we’re evolving our engine to be more interoperable with Blink and WebKit, we’ve spent considerable time working with all browser vendors to fix interoperability issues in browsers and specifications.

As detailed before, we forked our old MSHTML (Trident) engine, which tried to balance both backwards compatibility and modern web interoperability, into a new ‘interoperability-first’ engine called Microsoft EdgeHTML. At the start of this journey, we had to make several changes:

One of the most impactful changes to improve Microsoft Edge was also the simplest – changing the user agent string that identifies the browser to web servers.

Even today, a large number of web servers still sniff the user agent string to give browsers different content. We fixed a huge number of issues by just changing the user agent string and getting more modern content that worked without any issues in our existing IE11 engine.

All user agents strings contain more information about other browsers than the actual browser you are using – not just tokens, but also ‘meaningful’ version numbers.

Internet Explorer 11’s UA string
Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko

Microsoft Edge UA string:
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

The userAgent property has been aptly described as “an ever-growing pack of lies” by Patrick H. Lauke in W3C discussions. (“or rather, a balancing act of adding enough legacy keywords that won’t immediately have old UA-sniffing code falling over, while still trying to convey a little bit of actually useful and accurate information.”)

That's just the first 10% of the article, which is worth a skim through if you're interested in browser technology. The whole user agent 'pack of lies' scheme has always seemed odd to me. Ideally, we'd just have a browser that declares itself as HTML5-compliant and we're done! As it is, browser and web pages are still, in 2015, caught up in a tangle of pretences entirely of their own making. Sigh.

Do read through the whole article though, which is comprehensive. In my trials so far, the Edge browser has been excellent on Windows 10 Mobile, so as far as the end user goes, as long as it all works....?

Screenshot, Windows 10 Mobile Insiders Preview featureScreenshot, Windows 10 Mobile Insiders Preview feature

Source / Credit: Microsoft