Microsoft says it decided to start from scratch with a new web rendering engine for Windows 10 because keeping up with web standards while maintaining compatibility with older, noncompliant versions of Internet Explorer had simply become too much of a burden.
"Fixing long standing interoperability bugs with other modern browsers could actually break sites who have coded to the IE-specific behavior," Microsoft's Charles Morris observed in a blog post on Thursday, echoing a lament that web developers have voiced for a decade or more.
Recent versions of IE have included various backward-compatibility modes that force the browser to repeat the errors of earlier versions. But for Microsoft, the need to essentially maintain two browsers simultaneously – one that did things the IE way and one that did them properly – was making it difficult to keep up with the rapid pace of web standards development.
Redmond's solution is Project Spartan, a brand-new rendering engine that will be the default in all versions of Windows 10, whether on PCs or mobile devices. Spartan ditches the legacy baggage that weighs down IE and makes standards compliance its main focus.
"Our rallying cry for Windows 10 became 'the web just works'," Morris wrote.
The older IE rendering engine – known variously as MSHTML.dll or Trident – will still be available, but only for sites that rely on IE's longstanding bugs, nonstandard behaviors, and rendering errors to display correctly.
"Our legacy engine ... can remain largely unchanged (outside of security and other high priority fixes) to help guarantee legacy compatibility for our enterprise customers," Morris said.
Open source? Nah
So serious was Microsoft about delivering a web browser on par with competitors like Chrome and Firefox, Morris said, that it briefly considered basing its new HTML rendering engine on an existing open source code base, such as WebKit.
WebKit is the rendering engine at the heart of Apple's Safari browser and Google uses a fork of WebKit called Blink as the rendering engine for Chrome.
But Morris said that the idea of starting with open source didn't last long in Redmond because Microsoft wanted to control its own code.
"Given the engineering effort required, we found that we could deliver an interoperability focused engine to customers significantly faster if we started from our own engine (especially if unshackled from legacy compatibility concerns), rather than building up a new browser around an open-source engine," Morris wrote.
Moreover, he said, Redmond is concerned that other browser makers' reliance on WebKit is creating a "monoculture on the web" – something that today's Microsoft is apparently against.
Morris said that Microsoft plans to release regular updates to Spartan so that its browser will be able to track the latest changes to web standards as they appear.
"We don’t see this interoperability effort having an end date – we’ll be continuously checking the data and rolling out improvements to the new rendering engine," he said. "For users that upgrade to Windows 10, the engine will be evergreen, meaning that it will be kept current with Windows 10 as a service." ®