Menu Search
Jump to the content X X
Smashing Conf Barcelona 2016

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 Barcelona, 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 RemoteIE21 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 reports22 and real world site impact.
  • Feel free to monitor and give us feedback on our standards roadmap – based on developer feedback23 over 40 different standards have gone from “under consideration” to in development since we launched our open roadmap24 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 me25 and the rest of our team26. 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://remote.modern.ie
  22. 22 http://connect.microsoft.com/ie
  23. 23 http://uservoice.modern.ie
  24. 24 http://status.modern.ie
  25. 25 http://twitter.com/jacobrossi
  26. 26 http://twitter.com/iedevchat
SmashingConf Barcelona 2016

Hold on, Tiger! Thank you for reading the article. Did you know that we also publish printed books and run friendly conferences – crafted for pros like you? Like SmashingConf Barcelona, on October 25–26, with smart design patterns and front-end techniques.

↑ Back to top Tweet itShare on Facebook

Advertisement

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…

    -104
    • 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

↑ Back to top