Menu Search
Jump to the content X X
Smashing Conf San Francisco

We use ad-blockers as well, you know. We gotta keep those servers running though. Did you know that we publish useful books and run friendly conferences — crafted for pros like yourself? E.g. upcoming SmashingConf San Francisco, dedicated to smart front-end techniques and design patterns.

Inside Microsoft’s New Rendering Engine For The “Project Spartan”

Last week, Microsoft made its biggest announcement for the web since it first introduced Internet Explorer in 1995: a new browser, codenamed “Project Spartan31.” So, what does this mean for us as designers and developers? What rendering engine will Spartan be using, and how will it affect our work? We spoke with Jacob Rossi, the senior engineer at Microsoft’s web platform team, about the new browser, the rendering engine behind it, and whether it’s going to replace Internet Explorer in the long run. This article, written by Jacob, is the result of our conversations, with a few insights that you may find quite useful. – Ed.

Project Spartan2
Project Spartan31, a new browser by Microsoft, was officially announced last week.

Spartan is a project that has been in the making for some time now and over the next few months we’ll continue to learn more about the new browser, what it has to offer users, and what its platform will look like. It will be a matter of few months until users and developers alike will be able to try Spartan for themselves, but we can share some of the interesting bits already today. This article will cover the inside story of the rendering engine powering Spartan, how it came to be, and how 20 years of the Internet Explorer platform (Trident) has helped inform how our team designed it.

Lessons Learned From Internet Explorer Link

Twenty years ago, Microsoft first introduced Internet Explorer to the world. For many users, it’s a household name and a brand recognized across the globe, but for web developers, those quirky older versions of Internet Explorer often make it difficult to recognize Microsoft’s recent efforts in supporting and implementing web standards. Though Internet Explorer’s legacy versions are likely to be remembered by web developers for bugs, hacks and dirty workarounds, IE did shape the web in a positive way4 for web developers by bringing CSS, dynamic HTML scripting and the DOM, AJAX/XMLHttpRequest, drag drop, innerHTML, hardware acceleration, and other technologies to the web.

On the browser team at Microsoft, we consider ourselves a learning organization. Each year, we take the time to reflect on our achievements and our failures to learn and grow. From that, each release of IE has made a lasting impact on how we engineer. Our learnings about the importance of cooperation amongst browser vendors, standards, compatibility, interoperability, performance, and security all come together to shape how we designed our new rendering engine.

Microsoft’s New Rendering Engine Link

The new Microsoft browser is going to be powered by a new rendering engine, EdgeHTML.dll. Windows 10 already has it integrated, and it will be separate from Trident (MSHTML.dll) that powered Internet Explorer for decades.

As we know, the latest versions of Trident powering Internet Explorer 11, did show a remarkable support for standards (I started to make a list5 of some of the notable ones, but stopped after I hit 75 specs). But its progress was heavily weighed down by the burden of legacy support for IE5.5, IE7, IE8, IE9, and IE10 document modes — a concept the web no longer needs.

So we set about to create a new engine using IE11’s standards support as a baseline. I watched Justin Rogers, one of our engineers, press “Enter” on the commit that forked the engine—it took almost 45 minutes just to process it (just committing the changes, not building!). When it completed, there was a liberating silence when we realized what this now enabled us to do: delete code, every developer’s favorite catharsis.

In the coming months, swathes of IE legacy were deleted from the new engine. Gone were document modes. Removed was the subsystem responsible for emulating IE8 layout quirks. VBScript eliminated. Remnants like attachEvent, X-UA-Compatible, currentStyle were all purged from the new engine. The codebase looks little like Trident anymore (far more diverged already than even Blink is from WebKit).

Project Spartan6
Project Spartan will be powered by a new rendering engine and the Chakra JavaScript engine, introduced with IE 9.

What remained was a clean slate. A modern web platform built with interoperability and standards at its core. From there, we began a major investment in interoperability with other modern browsers to ensure that developers don’t have to deal with cross-browser inconsistencies. To date, we’ve fixed over 3000 interoperability issues (some dating back to code written in the 90’s) on top of the over 40 new web standards7 we’re working on. For example, longstanding innerHTML issues are now fixed. Even recent standards, like Flexbox, are getting renewed love so that the new engine matches the latest spec (this will show up in a future Windows 10 preview build). Project Spartan will also have an updated version of the F12 developer tools. A few of my personal favorites that are in the preview builds or on their way:

  • Preserve-3d
  • The most advanced support for ES68 at the moment
  • XPath
  • Web Audio
  • Media Capture API
  • Web RTC 1.1 (ORTC)
  • Touch Events
  • Content Security Policy
  • HTTP/2

As it turns out, a modern and interoperable rendering engine alone isn’t enough to magically make the web just work. To do that, the browser also has to make sure that sites provide the browser with the up-to-date, “modern browsers” code. So our new engine also comes with a new user agent string. If user agent string tokens were stickers, then the new engine’s UA String looks like the backs of most web devs laptops these days. But this yields surprisingly positive results in compatibility and enables lots of sites to send our new engine modern content. It also gives me one more opportunity to beat the drum again: user agent sniffing should be avoided at all costs!

“That’s great, but my company has sites that require IE8.” Link

In order to ensure that we also retain backwards compatibility, we will not be getting rid of Trident. Instead, we designed and implemented a dual-engine approach, where either the new modern rendering engine or Trident can be loaded. This switch happens transparently to the user. Windows 10 will use EdgeHTML for the web (so no more worrying about doc modes) and only load Trident for legacy enterprise sites9. This dual-engine approach enables businesses to update to a modern engine for the web while running their mission critical applications designed for IE of old, all within the same browser. Even better, with the dual-engine approach we can ensure that only essential security fixes are made to Trident, minimizing code churn and ensuring that compatibility is preserved for enterprise sites, while we focus on innovating in the new (and always up to date) rendering engine untethered.

Spartan is the browser we expect people will be using on Windows 10. That said, there are a set of businesses that have built key tools on top of Internet Explorer’s legacy extensibility model (e.g. custom ActiveX, toolbars, browser helper objects, etc.). So, Internet Explorer will be made available on Windows 10 for some enterprise web applications that require a higher degree of backward compatibility. This version of Internet Explorer will use the same dual-engine approach as Spartan with EdgeHTML the default for the web, meaning developers won’t need to treat Internet Explorer and Spartan differently and our standards roadmap10 will be the same. The browser will be powered by the Chakra JavaScript engine11.

“That’s great, but some of my users still have IE8.” Link

We hear you. What’s painful for web devs to support is also painful for our browser team. Back in May, we talked about getting our users upgraded as a top priority12. Later in August, we announced a browser support policy13 that will encourage users to get up to date. Most significantly, we announced last week that Windows 10 will be a free upgrade14 to customers running Windows 7, Windows 8.1, and Windows Phone 8.1 who upgrade in the first year after launch. Furthermore, we’ll treat Windows 10 as a service—keeping users up to date and delivering features when they are ready (“auto-update”), not waiting for the next major release. This means the new rendering engine will always be truly evergreen.

The Roadmap Ahead Link

Another welcomed change that we’ve been rolling out over the past year is a promise for increased openness about our web platform plans and roadmap. Over the last year, you’ve hopefully experienced some of this through our open standards roadmap15 (one of my personal side projects), our Reddit AMA16, regular dialog through @IEDevChat17, and sharing preview builds18 very early in our development process. You’ll see more of this over the next year.

For standards support, we will maintain a pipeline of new features we’re working on. What’s ahead in the near future are Web Audio, Image srcset, @supports, Flexbox updates, Touch Events, ES6 generators, and others that have all seen commits in the recent weeks. What lies beyond are big ticket items like Web RTC 1.1 (ORTC) and Media Capture (getUserMedia() for webcam/mic access). Beyond that, we’re starting to use your input19 (and other factors, such as real world usage data gathered through the Bing crawler, which now can run our new engine) to shape how we prioritize our next platform investments.

Our plans for the platform in the initial release aren’t fixed—developer feedback has and will continue to shape it. So please expect agile changes. Here’s what you can do to get ahead:

  • Test out the new engine
    EdgeHTML can be enabled today within Internet Explorer in the Windows 10 Technical Preview20 (a preview of Project Spartan will come later) by navigating to about:flags and enabling “Experimental Web Platform Features.” If you’re on a Mac or don’t have a machine you can upgrade to Windows 10 preview builds yet, there’s the recently launched RemoteIE cloud service that lets you stream a version of IE running the new engine without downloading large virtual machine images (note: we’re still in the process of rolling out the last week’s preview build to RemoteIE).
  • File bugs
    Our investment in interoperability with modern browsers is fueled by data from bug reports21 and real world site impact.
  • Feel free to monitor and give us feedback on our standards roadmap – based on developer feedback22 over 40 different standards have gone from “under consideration” to in development since we launched our open roadmap23 back in May 2014.

Personally, I’m excited to share this inside scoop on the new web rendering engine powering Project Spartan in Windows 10 so early in our development process. We look forward to sharing more of our plans and in the coming months. In the meantime, if you have feedback, reach out to me24 and the rest of our team25. Let’s make the web work for you.

(rb, vf, il)

Footnotes Link

  1. 1 http://blogs.msdn.com/b/ie/archive/2015/01/22/project-spartan-and-the-windows-10-january-preview-build.aspx
  2. 2 http://blogs.msdn.com/b/ie/archive/2015/01/22/project-spartan-and-the-windows-10-january-preview-build.aspx
  3. 3 http://blogs.msdn.com/b/ie/archive/2015/01/22/project-spartan-and-the-windows-10-january-preview-build.aspx
  4. 4 http://www.nczonline.net/blog/2012/08/22/the-innovations-of-internet-explorer/
  5. 5 https://gist.github.com/jacobrossi/044ea8ad3b0165e46eaf
  6. 6 http://blogs.msdn.com/b/ie/archive/2015/01/22/project-spartan-and-the-windows-10-january-preview-build.aspx
  7. 7 https://status.modern.ie/?iestatuses=indevelopment,iedev
  8. 8
  9. 9 http://blogs.msdn.com/b/ie/archive/2014/04/02/stay-up-to-date-with-enterprise-mode-for-internet-explorer-11.aspx
  10. 10 http://status.modern.ie
  11. 11 http://blogs.msdn.com/b/ie/archive/2012/06/13/advances-in-javascript-performance-in-ie10-and-windows-8.aspx
  12. 12 http://blogs.msdn.com/b/ie/archive/2014/05/27/launching-status-modern-ie-amp-internet-explorer-platform-priorities.aspx
  13. 13 http://blogs.msdn.com/b/ie/archive/2014/05/27/launching-status-modern-ie-amp-internet-explorer-platform-priorities.aspx
  14. 14 http://blogs.windows.com/bloggingwindows/2015/01/21/the-next-generation-of-windows-windows-10/
  15. 15 http://status.modern.ie
  16. 16 http://www.reddit.com/r/IAmA/comments/2dk60t/we_build_internet_explorer_i_know_right_ask_us/
  17. 17 https://twitter.com/iedevchat
  18. 18 https://insider.windows.com/
  19. 19 http://uservoice.modern.ie/
  20. 20 http://preview.windows.com
  21. 21 http://connect.microsoft.com/ie
  22. 22 http://uservoice.modern.ie
  23. 23 http://status.modern.ie
  24. 24 http://twitter.com/jacobrossi
  25. 25 http://twitter.com/iedevchat

↑ Back to top Tweet itShare on Facebook

Jacob is a web tinkerer and Spartan at Microsoft, standards conciliator, music maker (piano, guitar), music listener (187+ concerts and counting) and general beer enthusiast.

  1. 1

    What will be the extensions story for Spartan?

    19
    • 2

      We’re working on a plan for extensions in a future update to Project Spartan. Still early in our planning, so details are still volatile. We’ll share more along the way when we have it.

      12
      • 3

        While you guys will be working on extension architecture, kindly make it easier and Javascript compatible similar to Firefox and Chrome. No more DLL/.NET code please!

        79
      • 4

        Trident fork? No extensions Support as a core concept?

        This will be yet another epic fail for Microsoft. Who is calling the shots there?

        Tell me again: How many hours have you wasted on it till now?

        -24
        • 5

          How do you get from “extensions are not yet done” to “extensions are not happening” is beyond me.

          Personally the idea of stripping out legacy code and starting afresh is a brilliant idea. It would certainly speed up the development of the browser as well as performance in general. Plus a more diverse browser landscape can only be a good thing.

          I am certainly not an IE advocate (firefox user, all the way), but the way I see it you are just bashing MS for no reason.

          9
        • 6

          If I remember correctly. I think Chrome didn’t support extensions during it’s initial release.

          0
    • 7

      “that’s great, but ALL of my users still have ie8”

      Great article!, but this wasn’t addressed quite right, relying on users to upgrade isn’t a solution. In a large corporate or government organizations updating their browser is not going to happen for as long as their web application works with no extra investment.

      This means web developers will still have to code for ie8 (sometimes ie6 & 7) when working on any large project.

      Only web developers can change this by writing no legacy support clauses in their Statement of Work contracts. Simply creating a new browser and making a website called kill ie won’t actually make ie go away

      …and if you work in government or finance then learn to love ie foooreeevvvveerrrrr

      4
      • 8

        Hi Daniel,

        Using old outdated technology is no excuse and Government and Finance better wise up quick – Microsoft had already said starting in January, 2016 only the latest browser will be supported or patched. I am tired of software vendors who are too lazy to upgrade their software and update their code to run on modern operating systems .

        11
        • 9

          Having attitude won’t get them upgrading…

          The industry I work in, we STILL have to pander to users trapped on IE6, 7 and 8.

          4
  2. 10

    Glad to see this level of care being taken in the next-gen browser. Out of curiosity, have you seen any measurable performance improvements from merely scraping out the legacy stuff?

    12
    • 11

      Yes. The disk size of the engine itself is decreasing and general web page performance has improved by various metrics, including JS perf. Preview builds are notoriously not our best foot forward with perf though, but you should see good things already and we’re not done yet.

      14
  3. 12

    So here was the opportunity to swallow their pride and join WebKit to make the internet a better place

    …and they built *another* closed-source, proprietary rendering engine.

    [Slow sarcastic clap]

    -94
    • 13

      Niels Matthijs

      January 26, 2015 11:23 am

      Even if I’d agree with MS switching to an existing rendering engine, Blink would definitely be the one to join.

      From what I read, they looked into that, luckily they were smart enough to ditch the idea and keep their own rendering engine.

      45
    • 14

      Why does it have to be open sourced? Why does it have to be webkit? Firefox isn’t webkit. Chrome isn’t webkit. Why should IE be webkit?

      Our concern should be with how it works, how it conforms to standards. It can achieve what we as developers need, without being webkit, and without being open source.

      55
      • 15

        Luke Huxley

        April 1, 2015 9:45 am

        Chrome does use WebKit. It’s good that Microsoft have, at least, considered Webkit because it shows us that they’re considering possibilities that might even knock their pride to do what is better. But it’s a good thing for them to strike it out on their own because the world needs competition (as long as the competition is good, IE has arguably held the web back). If Microsoft did go open source then there would be loads of benefits to come with that including free idea, bug fixing and development that they can choose to either utilise, ignore of rip off of. Keeping it closed source, of course, means they aren’t airing their dirty laundry, allows the company to retain greater control over the engine and also prevents open source rendering engines from copying their code.

        As a developer I don’t care what Microsoft do as long as they don’t make the same quirky mistakes of the past.

        2
    • 16

      Chris Heilmann

      January 26, 2015 11:38 am

      You mean the Webkit Google replaced with Blink and Opera followed? The one that powers millions of outdated Android devices and will never get an upgrade unless the device is powerful enough to get an OS upgrade?

      The fact of the matter is that in order to have a standards based web, we have to have different browser engines to test standard proposals against. Having a WebKit only web would be as disastrous as having an IE6 only web or a Gecko-only web. Any engine that has no competition will deteriorate over time – no matter if it is open or closed.

      Just because you love what WebKit does right now, doesn’t mean everybody should use it. We’ve done that mistake before. It gave us a lot of IE only implementations that just won’t die.

      Case in point: using a CSS animation with a transform right now needs to have each keyframe definition repeated with a -webkit- preview to work. The other engines have them unprefixed. So much for “modern browser” in 2015.

      143
    • 18

      The part of the post that chides them for making a closed source product is something I can agree width.

      But having just one single, even if open source, dominant engine is pretty much where we were in IE6 days.. and it’s not a great place to be.

      17
    • 21

      I too would have preferred that this be done in a more open source fashion.

      But I do not like the idea of there being even less browser engine diversity. We need multiple implementations of standards (to properly test them) and multiple implementations of software which constitutes a critical part of the current internet infrastructure.

      6
    • 22

      This. While I don’t always think webkit is the shit (it’s not), it would be nice to have a more unified standard.

      -10
    • 23

      You realize if everyone uses Webkit, innovation will crawl. That’s exactly what happened in the IE6 dominance days.

      6
    • 24

      Goodbye innovation.

      -1
  4. 25

    This line baffled me: “The new Microsoft browser is going to be powered by a new rendering engine, EdgeHTML.dll. Windows 10 already has it integrated, and it will be separate from Trident (MSHTML.dll) that powered Internet Explorer for decades.”

    This implies that after all those years Microsoft still chooses to integrate its browser deeply within the OS, which makes browser releases extremely OS depended and running multiple versions more of an hassle. Also it ties in OS releases to browser releases which in the past caused never-ending support (ie6,ie7) and slow release cycles (especially compared to Mozilla and Chrome).

    With Spartan they had to chance to change this… But Microsoft decided to keep it as it is and integrated their rendering engine within the OS.

    -17
    • 26

      Niels Matthijs

      January 26, 2015 11:22 am

      “Furthermore, we’ll treat Windows 10 as a service—keeping users up to date and delivering features when they are ready (“auto-update”), not waiting for the next major release. This means the new rendering engine will always be truly evergreen.”

      That should smooth things over.

      18
    • 27

      Chris Heilmann

      January 26, 2015 11:40 am

      As Niels said, the engine seems to be integrated but also evergreen and auto-updating. Think of the Webview in Android Lollipop. This one now updates with Chrome instead of having to have an OS update.

      18
    • 28

      This statement is just factually incorrect. Microsoft has been delivering updates on a regular basis for the past couple of years. Just because they don’t change the major version # doesn’t mean the IE you run today is the same one that shipped with Windows 8.1 (I’m currently on 11.0.15). I am seeing a new release every couple of months.

      Also, remember that while IE ships with an OS and is used by the OS doesn’t mean it is integrated in the same way it was 15 years ago. Today, the OS uses IE as the default browser, but will happily use FF or Chrome as your default browser as well.

      5
    • 29

      But that is Microsoft’s model. You may not agree with it, but tight integration is one of the things that .NET developers love about the platform. It doesn’t work for everyone or fit every use case, but for those choosing that architecture route, it can be a selling point, not a constraint.

      0
  5. 30

    Vladislav Rastrusny

    January 26, 2015 11:46 am

    >>I watched Justin Rogers, one of our engineers, press “Enter” on the commit that forked the engine—it took almost 45 minutes just to process it (just committing the changes, not building!).

    Wouldn’t Git fork it much faster? :)

    17
  6. 31

    “IE did shape the web in a positive way for web developers by bringing CSS, dynamic HTML scripting and the DOM, AJAX/XMLHttpRequest, drag drop, innerHTML, hardware acceleration, and other technologies to the web.”

    What an outrageous lie. This is so not true. I can’t even begin to understand why someone would claim this…

    -105
    • 32

      Chris Heilmann

      January 26, 2015 12:08 pm

      Your counter proof? XHR was part of Outlook for the web, Adaptive Path gave it the name Ajax. AFAIR drag+drop and innerHTML also was part of IE first as they were part of the whole HTML Application (.hta) movement.
      I look forward to be wrong here, but you can not just call someone a liar without proof.

      74
      • 33

        Yes, but many of these things were poorly designed and competitively fast-tracked into an already buggy engine without going through any standards process, so it is debatable that they shaped the web in an entirely ‘positive way’. (Anyone want to tell me what preventDefault does in each of the 7 drag and drop events, without looking up the docs? Those things had to be standardised as-is for legacy reasons.)

        I’m not arguing that innovation is not good, but there has been a tendency towards putting a rosy spin on old IE releases which can touch a nerve for those who wasted half their lives hacking around IE6’s layout engine.

        I don’t want to knock this effort, it sounds good. But I understand people being annoyed at the spin.

        7
        • 34

          What most people forget was that IE6 was the cream of the crop when it was first released. It had the best support for web standards of all browsers. Web standards existed back then and IE followed them better than its competition ever did. It created it’s own proprietary features here and there but that was a minor blemish in comparison. Soon everyone was only using IE to the point where no-one wrote websites for any other browser. I personally can’t blame them though, Netscape 4 was an appalling browser that tacked on css support at the last minute and got wrong what little was implemented. Eventually in the minds of everyone the remaining quirks and proprietary features in IE became the de facto standard and every other browser was doing it wrong. This mentality persisted well past Netscape 6 and into the early years of Firefox. Since IE had no competitors and could dictate standards as it saw fit, and was shackled by knowledge that any change to the IE6 rendering model would break a vast number of sites, development just stalled, which is the fate of every browser monoculture. In the end it was years and a number of OS releases before IE7 was released, long after the public perception of IE6 was inverted, and it wasn’t the default browser until Vista. Except Vista was utterly rejected as an OS and people stayed on XP (with their default installed IE6 browser) until Windows 7. By then entire intranets were built on IE6’s quirks, which made it live on to the point where every web developer despised IE6 and IE in general.

          5
      • 35

        It’s very nice to see a Mozilla evangelist defending Microsoft. The world of computing (especially the world of Microsoft) is changing, and I like it :-) I used to be a Microsoft-basher, but all that ended about a year or two ago when I saw IE10. (Oh, and I started using Visual Studio at work. Nice piece of kit.)

        13
        • 36

          Marek Stępień (@marcoos)

          January 29, 2015 10:50 pm

          You’re not up-to-date, Chris quit Mozilla and is now a Microsoft evangelist. :)

          0
    • 37

      Chris Heilmann

      January 26, 2015 12:10 pm

      The CSS-1 support of IE was also much better than other browsers when it came out. I remember having to wrap elements with classes around FONT elements to get fallback functionality in Netscape.
      I guess what some of these claims need are timestamps :)

      35
      • 38

        But Opera was much earlier with starting to implement CSS. And they did much less free “creative” interpretation of the W3C standard, but sticked to the standard as much as possible. Don’t know about Netscape – that wasn’t a real browser to me, more a proof of concept client for HTML rendering.

        -51
        • 39

          @Andreas: You are only bashing, without giving reasons. Please stop it!

          5
        • 40

          You’re wrong on most points, Andreas. Read up on the history of the web or talk to some people who were developing for the web 15-20 years ago. This is what I know:

          – Netscape was the most popular browser for several years during the 90s and for much of that time led the way for other browsers.
          – IE 4 was simply streets ahead of everything else when it came out in 1997. It had by far the best best CSS support of the mainstream browsers at the time. IE 3 in 1996 also had some basic CSS support.
          – IE 4 also had the ability to manipulate all style properties via script and dynamically re-render the page (“dynamic HTML scripting and the DOM”), which no other browser could do for years.
          – IE 4 also introduced innerHTML in 1997 and was certainly the first browser to do so. I think the next mainstream browser to support it was Netscape 6 in 2000.
          – IE has had “Ajax” support since version 5, released in 1999. The next mainstream browser to support XMLHttpRequest was Firefox 1.0 in 2004 (unless you include Netscape 7 in 2002, which was by then a minority browser).

          26
      • 41

        Phil Pickering

        January 26, 2015 8:53 pm

        Here’s some timestamps for you :)

        1996 : IE3 first browser to support CSS
        1997 : IE4 first browser to support DHTML with extensive DOM access
        1997 : innerHTML introduced with IE4
        1999 : XMLHTTP introduced with IE5 (1996 iFrame, 1998 Outlook XMLHTTP component)
        2000 : IE5 (Mac) first browser to have fully support CSS1
        2000 : dragDrop() method introduced with IE5.5 (IE4 and IE5 had minimal drag and drop implementations)

        22
        • 42

          You forgot about Web Fonts all the way back in IE4 https://msdn.microsoft.com/library/ms533034.aspx ;)

          11
          • 43

            … and how much more important those web fonts were in the era when you couldn’t reliably assume anything about operating system support for non-ASCII text. I worked on a Chinese/Japanese/Thai/Vietnamese portal site in 1999 or so and the IE web font implementation was critical for most of our users.

            8
    • 44

      I can’t speak to everything but…

      In 2000, I was working at a Vancouver startup building a CMS that was managing the online presence for one of Canada’s leading news broadcasters at the time and controlling on-air graphics (those tickers with latest news headlines, stocks). We were doing “ajaxy” things at the time with frameset and a 1px frame that loaded our javascript stuff.

      I recall with fondness the giddy anticipation of being able to tell our clients to upgrade to IE5.5. To say that it made my life easier, is an understatement (if you’ve ever tried debugging JScript or VB that generated JavaScript, you were probably in the same boat).

      IE did shape our environment. That it did so in an often frustrating fashion, is also undeniable, sometimes it has been overtly hostile, but on average its been positive.

      3
  7. 45
    • 46

      A11y is certainly very important to us. We’re aware of the issues. Nothing to share right at this moment, but you’ll be one of the first to know when we do.

      1
    • 47

      Steve, what’s the reasoning behind leaving Safari (Mac/VoiceOver) out?

      0
  8. 48

    If spartan is so awesome and you deleted so much – one question remains: Why do you even _have_ lines of code left from the 90s? It’s not as if they’re battle hardened veterans that survived all bugfixes, apparently…

    -73
    • 49

      There are some things one actively avoids changing, such as the header files defining the public API of mshtml.dll. edgehtml.dll may not be a perfect drop-in replacement but I would bet it’s as close to a drop-in replacement as practically feasible.

      0
  9. 50

    OK, there are some positives here, features like Web RTC will be interesting to those wanting to build chat applications and HTTP/2 will benefit us all in a small way. Other things like Preserve-3d should have been in a long time ago.

    The elephant in the room here though is surely Web Components. No other development is going to make as big a difference to the web over the next few years than web components. Now that we have flexbox it’s surely the thing that most front-end devs are looking forward to. Web Component related features are already in Chrome, They’re in Firefox (except HTML imports which can be polyfilled), they’re in Opera, but they’re not in IE and the modern.ie status page shows Shadow Dom, Custom Elements, HTML Imports and HTML Templates all “under consideration”, which means they’re not “in development”.

    What gives Microsoft?

    There are other less important features that aren’t in TP yet (although web components is the biggie). According to this page, which compares the features in technical preview with those already in Firefox and Chrome, there’s still a big disparity.

    http://caniuse.com/#compare=ie%2BTP%2Cfirefox%2B35%2Cchrome%2B40

    Now, don’t get me wrong, I really appreciate the new browser going properly “evergreen” and things like leading ES6 support will make a big difference, but if devs are going to start loving IE again and the web platform is going to have a hope of competing with native apps then we need to see lightning fast development on new features like this.

    The web platform desperately needs better layout options, better/smoother animations (e.g. 2d/3d transforms at 60fps), and much more to compete with native apps and this is only going to happen if browsers implement new features in months, not years, because lets’s face it Apple and Google can add new features to iOS and Android much,much quicker than browser manufacturers seem to add new web platform features.

    Anyway, I’ve ranted a bit there, but basically if Spartan doesn’t start adding new features that other browsers already have, pretty darn quickly, then as far as us devs are concerned then it’s business as usual.

    16
    • 51

      There’s actually a lot that’s missing from canIuse.com at the moment. For example, Web Audio, Web RTC, CSS Appearance, CSS Filters, CSS Supports, Web RTC, getUserMedia, and more are in development for EdgeHTML. I’m working with Alexis to update this. The most up to date list is directly from our roadmap: https://status.modern.ie

      Regarding web components, I’m a big fan of the general idea. However, like Mozilla has pointed out, I think HTML Imports need rationalization with ES6 modules. Further, a lot of the feedback Ryosuke Nawa from Apple gave recently really resonates with me (I’m don’t think the process through which Web Components became “standard” was our best shining moment in collaboration; lots of browser vendor feedback was ignored to ship something asap).
      https://lists.w3.org/Archives/Public/public-webapps/2014OctDec/0630.html

      That said, I don’t think these issues will ultimately block us from implementing web components (even if just to underscore our interoperability commitment). To give you a glimpse under the hood, we’re actually in the process of completely rearchitecting the core data structures that power the DOM in EdgeHTML. Work on web components would have to come after that (or else we’d just end up doing it twice). So stay tuned for more updates on our plans at http://status.modern.ie

      13
      • 52

        Thanks for your answer Jacob, much appreciated.

        Unfortunately, it does show why the web platform will always be on the back foot. If MS haven’t even started on web components yet then that just demonstrates how long this process takes compared to private companies making changes to their own native frameworks.

        This bit was very telling…

        “I’m don’t think the process through which Web Components became “standard” was our best shining moment in collaboration; lots of browser vendor feedback was ignored to ship something asap”

        I think we’re going to disagree on this. Personally, I think it’s better to keep improving the web at a faster rate, even if it’s not perfect, than spend years discussing things and getting left behind. Sometimes I think that the people involved in this process are just so used to how long these things take that they have no idea of how glacial the pace looks to outsiders.

        1
    • 54

      Benjamin Solum

      January 27, 2015 2:31 am

      Totally agree! Next to web components, I’m really missing Object.observe() too. The web looks so much better in IE11 thanks to improved support, but there are a few key features that are still missing that I feel hold the web back as a whole.

      4
  10. 55

    Guilherme Harrison

    January 26, 2015 1:21 pm

    Is there any information about font rendering in W10?

    2
  11. 56

    I am glad that Windows finally created some great browser and I hope web designers will not hate Microsoft in future.

    8
  12. 57

    Don’t care what they say, it means more bugs, more work arounds and more hacks. Just you wait and see. Microsoft CANNOT get their act together.

    -82
    • 58

      No need to wait! Try out the engine by downloading the preview or running RemoteIE and file those bugs you think it means. :-) We’ve got a small army of engineers here happy to look at them (3000+ fixes and counting!)

      54
  13. 59

    Chapau! Chapau! All the best to the IE (Sparta?) team ;)

    1
  14. 60

    The only reason I’ve been avoiding IE is lack of good extensions and plugins. I do not know what stops developers from creating good plugins for IE when they create loads of apps, extensions etc for Chrome and Firefox. IE11 is fast and I’ve been using it for accessing my bank account only because it does not have any other extensions that become handy over course of browsing the net daily.

    3
    • 61

      Walter Sobchak

      January 26, 2015 9:06 pm

      Well, the reason is the extension model of IE11 still is Browser Helper Objects. Since they have broad access to the system, they are considered harmful. And they needed to be developed in C++ using COM. Not much developers (let alone script kiddies) know about this stuff anymore.

      4
  15. 62

    Lipstick on a pig

    -58
    • 63

      Very well written argument there…. Oh wait.

      Get a grip, and wait and see…. then try bashing for no reason.

      0
  16. 64

    Which engine will webdriver use?

    Neither?
    Both?
    Either (switching at random between them for no apparent reason)?

    0
    • 65

      John Jansen [MSFT]

      January 27, 2015 12:35 am

      Hey @nick, thanks for the question. We are definitely committed to the Edge engine with WebDriver. We are still working out details about how it must work, but it should never randomly switch between them for no apparent reason. I expect that you will be able to test your internet sites or intranet sites in ways the very closely mimic the actions a real user would see and do.

      -John (@thejohnjansen on twitter)

      0
  17. 66

    Jettisoning legacy Trident, document and compatibility modes, behaviors, and all that leftover junk is a huge step in the right direction, and I applaud it, but I do find some of these decisions odd.

    Why are there two separate browsers if both can access both rendering engines? Why does Spartan include Trident at all? I sort of understand having IE access EdgeHTML, to trick users into using it who insist on using IE instead of Spartan, but what’s the point of having Trident in Spartan? Or is that not the case?

    Also, I’d rather these new browsers didn’t have a UA string at all, than to have one that exemplifies the worst practices that made them so pointless in the first place. The function of the UA string is to identify the browser, and it should do so in the most straightforward, precise, and complete way possible. Nobody does this, but everyone should. Being deliberately vague and deceptive about it isn’t going to convince people not to rely on UA sniffing, and there are always going to be edge cases that can’t be solved by feature detection alone.

    3
    • 67

      “Nobody does this, but everyone should.”
      You’ve got it backwards. UA strings used to be correct, but every time web developers sniffed, someone had to contort their UA string whenever they made a new release so that sniffing didn’t break the browser. Like IE11 needing to hide the MS-stuff in their UA string so IE11 features and fixes could work on websites sniffing for older IEs and sending them ms-specific code that wouldn’t work in 11 anyway. Or Opera back in the “bork” days. Opera got punished the worst for trying to be honest with their UA string.

      The web developers caused the crappy UA strings, not other way around.

      14
    • 68

      We want enterprises to be able to use Spartan too. For them, Trident compatibility (e.g. with legacy line of business sites) is critical. So Spartan can load Trident through Enterprise Mode for those sites. That helps keep their mission critical stuff working while the web gets the latest modern engine, EdgeHTML.

      That said, Spartan won’t support many of the browser extensibility mechanisms of Internet Explorer (but we’re working on a plan for modernized extensibility in Spartan for a future update). So we’ll still make IE available for businesses that have a dependency on that. But we expect most users will use “Project Spartan” on Windows 10.

      For UA Strings, I propose a fun experiment. Install the latest Windows 10 tech preview. In IE, navigate to about:flags. Flip on the custom UA setting and just type something like “ProjectSpartan/1”. I predict you’ll want to switch back after a day of browsing. :-) I don’t think any browser likes that the UA string is such a mashup (every browser has tokens from other browsers), but it’s necessary to run today’s web compatibly. It’s still possible to identify EdgeHTML by looking for the “Edge” token, if you must (I understand there are some valid scenarios, just use it sparingly!).

      14
  18. 69

    I’m looking forward to this move for the Windows browser. It’s a step in the right direction. A long time mac user here (since OS 8), I’ve grown tired of Apple’s short term support for computers less than 3 yrs old and the way OS X continues to become more bloated with each release. I felt like I needed a change and decided to try Windows 8.1, just to see how it would go. So far I’ve been working on it for 2 months and love it. Even decided to buy into a Windows phone and I hate to say this, it almost feels like I’m betraying a long time friend, but it really is a beautiful experience. It’s not a mac, it doesn’t even try to be a mac. It’s different. It works. It reminds me of what Apple use to be like before everyone and their cat had an iphone. Try it. You may like it :-)

    18
  19. 70

    Ken Franqueiro

    January 26, 2015 6:44 pm

    I notice “Touch Events” mentioned a couple of times in this article. Please tell me you guys are keeping Pointer Events around, too? Pointer events are really the superior standard for truly input-agnostic solutions, and are the number one reason I argue against trolls saying that IE should just bend over and adopt webkit or blink.

    8
  20. 72

    I think VBScript is actually in a separate DLL, right?

    0
  21. 73

    « IE did shape the web in a positive way »

    This made me laugh more than it should. You seem to forget why Internet Explorer has felt the need to change its name in the first place. And it’s not because it was «too good» or «too innovative»…

    -36
  22. 74

    Microsoft has trained users and developers for decades that the new shinny toy today will be supported when it becomes old rubbish tomorrow. Spartan and Microsoft only supported IE-edge per OS in 2016 will not change mindsets for the next few years. Paying customers will still demand IE 8,9 and 10 and there is no way around it.

    -12
  23. 75

    Is there an official list of the IE legacy features that Spartan has dropped? This would be useful for web devs.

    5
    • 76

      Agreed this will be super useful, Chris. I started to compile a list but it’s not exhaustive. So I’m going to diff our type system and produce something more complete. We’ll get that on MSDN, the blog, and/or status.modern.ie once I’ve got it. Thanks for the suggestion!

      11
  24. 77

    Is about:flags available on current build: 6.4.9841? It’s not in my test.

    1
  25. 79

    I hope that Project Spartan would put more attention to things that are highly unlikely to reach the minds of stereotypical web developers to advocate for on `modern.ie`, and things that developers on the platform will create/vote for like CSS filters, masks, and blend modes; intrinsic & extrinsic sizing; WOFF2, CSS.supports, object-fit, CSS font-size-adjust, CSS box-decoration-break, the dialog element, better accessibility tools, animation tools, and so on.

    Jacob Rossi, can you go into more detail how feedback, especially voting has helped add features to Project Spartan?

    Fair or not, and being a stretch to stress without quantitative numbers, but it’s very unlikely to me that web designers would go out their way to go on the site and vote for such features.

    It’s in fact highly probably many of them are more used to ecosystems from alternatives to Windows which naturally left them less reason to voice their concerns.

    It’s amazing Project Spartan leapfrogged even Google Chrome when it comes to ECMAScript 6 JavaScript/JavaScript 2015, but it’s telling it still lacks substantially.

    Personally I hope Project Spartan creates an opportunity, considering how much about interoperateability is being stressed with Win 10, Web Components is added to Project Spartan before its public release, and perhaps a revitalization of next-gen images being decided on through a more democratic approach with Project Spartan supporting Web-P & APNG in addition to JPEG-XR for the *web* decide which is used prevalently–rather than the current approach which is practically (seemingly) ‘I think my new format is better than yours for most (not all) image use cases, and it’s too much work for me to consider adding/maintaining others in my browser” at this point.

    4
    • 80

      Voting on uservoice.modern.ie is just one of the ways we collect feedback on how to prioritize things. We also use usage metrics to track feature adoption trends via the Bing crawler. Standardization status is also important to us as we don’t want to prematurely ship something and end up with the next set of “legacy” we need to figure out how to delete from the platform. :-)

      Additionally, we’re active in many of the major web developer forums (e.g Stack Overflow, GitHub, Twitter, etc.) and conferences. So even for those folks that don’t make it to modern.ie to express their thoughts, we still get a good pulse on what real world web developers and designers need.

      I would reject the premise though that because some designers might not use Windows that they might not be concerned or familiar with their users’ needs on Windows. As a professional developer/designer, your job is to look after the needs and experience of your users and there are 1.5 billion Windows users out there. So I encourage folks that fall in this category to understand what their needs are across platforms, get involved, and help shape products like IE/Spartan for the better so your users are delighted. We’ve made it really easy to do this with VM images for most major VM formats and platforms, RemoteIE which can be run without a large VM download, an open standards roadmap, etc.

      In the last year, “my standard is better than your standard” has not been a factor in how we prioritize work in EdgeHTML. For example, we’re big believers that Pointer Events is far superior to Touch Events. But developers ask for TE sometimes and usage data shows it’s important on mobile, so we add it anyway. Similarly, we didn’t bat an eye at adding -webkit proprietary APIs either. For WebP, it’s really not about which format is better. There are some rather complex aspects to this (including, but not limited to, legal issues due to WebP being non-standard) that make this a bigger challenge than most. Let me see if we can get a more detailed blog/article out on this to give some insights into how we’re thinking lately.

      You’ll find some of the things you were looking for (e.g. @supports, filters) are already in development. Many of the others are on our backlog, we just haven’t gotten a free developer yet to go write the code (but hopefully will soon). I didn’t see anything on your list that isn’t something we’re aware of and considering in our roadmap. I promise we’re listening and not just to our slice of the ecosystem. But if ever you feel something specific is being dropped on the floor, reach out to me on Twitter and we can discuss!

      13
      • 81

        Gotcha. Thanks taking the time of your busy day to provide a thoughtful response, Jacob.

        7
  26. 82

    As a web developer who uses Linux, I was excited to see the Remote IE site you mentioned. Then I realized that it is not web-based but instead a standalone app, and there was no Linux version posted. I like how you offer VMs for IE testing and in fact use them, but do you have plans to bring Remote IE to Linux?

    2
  27. 85

    Can we download Spartan from anywhere for Windows 8 or Windows 8.1?

    1
  28. 86

    will this be the “End of other browsers”????

    -1
  29. 87

    Vk. Choudhary

    January 27, 2015 9:24 am

    Make all CSS properties supportable. :)

    4
  30. 88

    We just got off the painful track debugging IE7 & IE8, and now you come up with a new ‘browser’ … I’m not even curious about it, I’m just afraid …

    -14
  31. 89

    Michael Gordon

    January 27, 2015 10:31 am

    Cool.
    Here you can learn about Microsoft’s Windows 10 – in a 3 minute Video: http://bit.ly/15dlMXq

    By the new video encyclopedia – Check123

    0
  32. 90

    Be carefull,
    compatability is what made Microsoft a succeful company especially in enterprise,
    Don’t lose that. ActiveX, VBScript, IE6 is essential for many of your customers, not the shiny html5 stupid standards,
    I still think that ActiveX, if implemented in a right way, is the right way to a more rich and powerfull web, not html5 and javascript weak and slow standards.

    -15
  33. 92

    What’s Microsoft’s plan to convince companies to upgrade? Large corporations are often the worst at upgrading. I understand they have old code they want to use, but they’re responsible for a large percentage of outdated browsers. Microsoft could really have a big positive influence on these companies to upgrade. Why not give them tools to upgrade their code instead of still offering Trident?

    2
    • 93

      Great question. Hopefully making it free for the first year will help. :-) Enterprise Mode is actually a huge tool for helping them upgrade their code. Many enterprises have tens of thousands of internal web sites built only for old versions. There’s increasingly an appetite for building newer modern sites, but that’s not an option if your users also must have an old version of IE. Moreover, it’s highly untenable to upgrade tens of thousands of internal sites to modern standards at once.

      Enterprise Mode lets businesses take the first step in using modern HTML5 internal sites: getting their employees on a modern browser. While yes, their old sites are still loading Trident, this now enables them to build their next generation of stuff on top of EdgeHTML with modern standards (Enterprise Mode can also load up the new engine for internal sites too). Over time, this helps them upgrade individual sites (out of what might be a large number) individually rather than be faced with having to upgrade 10’s of thousands of sites at once.

      There’s more we’re doing or thinking about doing here to enable a new generation of enterprise sites that are built with modern standards. A lot of it is education, which is something we’re investing in.

      4
  34. 94

    Same sh*t, different color.
    Why not just stop making completely new version of the browser each year which will not be updated easily?
    Only IE requires to update OS for updating the browser.
    What is wrong with these people?
    MicroSoft is failing browser market for last 20 years and they continue to torture users and web-devs.
    Probably it is time to quit browser market for MicroSoft like they did it with other their dead-end projects.

    -12
    • 95

      Factually incorrect just about everywhere.

      IE 11 is automatically updated – although the version number sees only minor changes there are frequent revisions. Moreover, every version of Windows has been able to install multiple versions of IE over the years. The update mechanism for IE and Spartan isn’t really different from Chrome or Firefox now.

      Other platforms, like some releases of Android, have the browser tied to the OS much more strongly.

      And if you went back 20 years you’d actually find Internet Explorer was the best browser around. As others have noted in detail in earlier posts, much of what we use daily in browser tech was pioneered by IE starting around that time. Subsequent failures in rendering and standards interpretation, stagnated development, and support for legacy versions that probably went a little too late were greater imposts on web devs.

      4
  35. 96

    IE8 support should be dropped entirely. It lives on XP which is an unsupported OS. Any site that requires passwords, or other sensitive information has an ethical obligation to NOT support IE8.

    Supporting IE8 basically means as web devs and businesses we are saying, “Yes please enter your sensitive financial, etc., information into my site while you use an unsupported OS that likely is compromised. Enjoy having your identity stolen and bank accounts emptied.”

    As far as support goes IE9 in 2015 should be considered the IE6 of 2007.

    7
  36. 97

    Considering MS past history with avoiding w3c rules / regulations with their internet browsers will this new browser be a helpful tool for web developers or another thorn in the development process?

    -3
  37. 98

    What about Silverlight? There are many sites, including my own that still use and require Silverlight. Will Silverlight be supported in the same way that flash is by having it built-in?

    -1
  38. 99

    It’s look promising , but the thing i hate about microsoft is so many brandings , when something goes wrong microsoft just change it’s name and polish interface but underneath is same failures , i hope spartan carries look & feel not just look !

    0
  39. 100

    I think it was time for a fresh start, and to go back to the drawing board. I think Internet Explorer has been in dire need of a full re-branding for years. Things look promising for this new browser, looking at the capabilities in comparison with Chrome or Firefox.

    0
  40. 101

    Great news!
    So we are in agreement that now we’ll have new trendy browser with the modern rendering engine and will not trouble to devs.
    This is going to rock anyway if works like chrome and others.

    0
  41. 102

    will it be made available for other platforms ? win & *nix

    1
  42. 103

    Why try to make Spartan work with IE 8 and 9? I believe in 2016 Microsoft will put its foot down and only support an Os’s IE edge. IE 8 at least does not fit in anywhere with this. WIndows 10 is slated to come out a few months before 2016.

    0
  43. 104

    You write “IE did shape the web in a positive way”. Could we just leave it to “IE did shape the Web – period “!?

    -4
  44. 105

    I like the increase of diversity that a new engine brings to the web ecosystem. Too bad it’s going to be a closed source one. If they open sourced it they would get many more developers on their side and maybe free ports to other platforms. Myopia.

    -1
  45. 106

    So window still doesn’t us sparse fast Fourier. Transform 2014,MSI/msix still is stuck with lapic?(invariant tsc is way better for MSI/msix, oh well at least ms added about:flag

    -1
  46. 107

    I work on intranet business web applications and my biggest issue with current IE is that it defaultly assumes all intranet sites need compatibility mode. I was wondering how it’s going to work with Spartan. How will it know which sites are legacy enterprise sites and which are enterprise sites that have been developed with the intent to utilize all the tasty modern features that are available?

    1
    • 108

      One thing will certainly be true: you will definitely be able to “up-level” your page to EdgeHTML when on intranet. We’d love it if you do that!!! Three ways to do that :-)

      1. If the MSHTML engine sees “X-UA-Compatible: IE=Edge” then it will bail out and load EdgeHTML.
      2. You’ll also have a user setting and/or Group Policy setting to change the default to EdgeHTML for all pages, intranet or not.
      3. Finally, your IT pro’s Enterprise Mode site list can also “up-level” a particular intranet site to use EdgeHTML instead.

      5
  47. 109

    IE 8 will be there untill Windows XP will be used…and basing on analytics it’s pretty often for now.

    0
  48. 110

    Hello, what does this mean for Web Browser Control (WebOC) hosting applications? Thanks.

    0
  49. 111

    Has (or does) the Spartan team consider(ed) to build also a Mac and Linux version of its browser?

    3
  50. 112

    Any plans to ship Spartan for Windows 7/8.1? It would be a lot easier to convince corporate customers to update their browsers than their entire OS. The dual-engine thing is clever, but pointless if people insist on staying with their old OS (even with a free OS update available, they will look at it and say “it’s too new, it’s going to be buggy, we don’t have time to investigate it”).

    1
  51. 113

    It looks ugly.

    Rabble Rabble Rabble

    -4
  52. 114

    One thing I’ve been wondering since before IE7, is why doesn’t MS just take an already tested and proven engine, and use that for IE instead, instead of always playing catch up?

    I do remember in the past that the IE team would show off the next version of IE, with numbers and stuff to show that it’s better or faster than current browsers, however, the problem is that those versions of IE wouldn’t be released for almost another year, when the next version of Windows was released (I believe that it was mentioned in the article, that updates to IE will be more frequent. Finally).

    -2
  53. 115

    Great Info But I think it’s not better than Google Chrome and Firefox as shown in the video review here http://techfumes.com/microsoft-project-spartan/

    -2
    • 116

      Nowhere in that link is there a review of Edge. That site couldn’t even use proper English. Nothing about that site looks at all credible. I might also add that Edge is nowhere near finished.

      0

↑ Back to top