When Jonathan Sampson (now at Brave) invited me to join the Internet Explorer userAgents program in 2013, I jumped at the opportunity to embrace and advocate for Microsoft’s commitment to an open web. I’ve been a strong backer of Microsoft’s web platform efforts since Internet Explorer 8 — so, for almost a decade now — and especially so in the face of an increasingly “Chromium-plated web”.
Today I’m a Microsoft Edge MVP, specializing in HTML, CSS, and web standards. Like many people who pride themselves standardistas (though I don’t use that label myself), I’ve firmly held the belief that a healthy web platform requires accountable, innovative, and most importantly independent, implementations of open web standards to thrive. And this is why, even though Firefox continues to be my daily driver 12 years on, I have been working very closely with the IE-and-then-Edge team to improve their browser product as well as to educate and help the developer community about the browser — regressions and innovations alike.
When Opera buried Presto and jumped ship to Chromium, it was seen as a great loss for web interoperability. Today it remains a great choice for users, but for web developers (at least, for me), it’s as good as irrelevant. To the average web developer, it’s “one less browser to worry about”.
Now, my worst fear has become a reality: EdgeHTML, the engine powering Microsoft Edge, will be sunsetted in favor of a Chromium-based desktop browser architecture. In other words, Microsoft Edge will soon become Yet Another Chromium-based Browser. But more importantly, Microsoft has given up on their independent implementation of the web platform and is focusing their efforts toward an existing one. A competing one. On the basis of “if you can’t beat ’em, join ’em”.
I know a lot of the big names in web standards are grieving EdgeHTML’s demise as I write this. Even Mozilla has posted a eulogy. But, as a Microsoft Edge MVP and someone with a very personal stake in the matter, I want to provide some context, and perhaps a different perspective. There is a lot more to this than “Chromium wins” and “monoculture, monoculture”. Or at least, I hope so. Let me break this down a little bit.
(Yes, this blog post will be somewhat emotionally charged, but it’s by no means a rant. I really want this to be as informative and balanced as possible while still being very much an opinion piece.)
De jure versus de facto
De jure (Latin: in law) refers to web standards and standards bodies such as the W3C and the WHATWG. By rights, multiple independent implementations are built and designed to follow the standards as best they can, with various other innovations and differentiating features from which consumers can choose. Different vendors can also provide their own web platform innovations that either start out as augmentations of the standard to be proposed for standardization, or go straight through the standardization process.
De facto (Latin: in fact) refers to the state of affairs in practice: that Google Chrome (partly by virtue of being a Google product, among other factors) has skyrocketed in popularity since its introduction a decade ago, and is now the go-to browser for most consumers. And its open source engine Blink (itself derived from WebKit, but AFAIK so far removed now as to be an engine in its own right) has at best enabled other browser projects to adopt Blink so that websites just work without having to worry about compatibility issues, but at the same time encouraged web developers to test in Chrome first, or worse, Chrome only, because that’s what the majority of their users are using, thereby contributing back to Chrome’s propulsion as the One True Browser™ of the 2010s.
Interoperability between browsers (“cross-browser compatibility”)
It’s pretty obvious that the main reason behind the decision to move to Chromium, then, is that Microsoft’s hand has been forced by the de facto state of affairs. Like it or not, Microsoft simply cannot continue to invest in EdgeHTML while simultaneously contributing to Chromium. Keep in mind that one vendor contributing to another’s implementation is not inherently a bad thing. It’s called collaboration (more on that below). But this is about energy, resources, and priorities. And I totally understand where Microsoft is coming from.
Remember the whole
-webkit- prefix fiasco from a few years back? Microsoft shelving EdgeHTML and adopting Chromium is basically the logical conclusion of that. Because the purpose of both things is exactly the same: as an immediate, and extreme, solution to cross-browser compatibility problems that
- developers have to deal with, and
- users have to suffer from as a consequence of certain issues that developers cannot or refuse to deal with.
Short-term, this sounds like a pretty good solution. But I’m still wary of the long-term implications. Servo (Firefox) is all we have left in terms of a truly independent implementation, and while I remain committed to my role as an MVP for Microsoft Edge, I’m backing Mozilla’s efforts and fight to Take Back the Web even more than ever. Yes; believe it or not, it’s totally possible for an individual, independent web developer to support more than one vendor in different ways.
(WebKit is the forefather of Blink, so I’m honestly not sure it counts. And I have no idea what Apple is doing with it, plus there is some degree of truth in the “Safari is the new IE6” meme as even I have parroted it myself, several times.)
Microsoft Edge, Windows 10, and limitations (“cross-platform experience”)
Fundamentally, EdgeHTML was built on the Universal Windows Platform, which, despite what the name might imply, is actually universal across devices running Windows 10 (Windows OneCore), not devices running any supported version of Windows. And UWP itself is an evolution of the Windows Runtime. This severely limited its adoption from the get-go by limiting it to Windows 10. Windows 7 and 8 users, as well as Mac users, simply couldn’t use Edge at all. And web developers had to run entire Windows 10 VMs in order to test their web apps on Edge.
Add to that the fact that EdgeHTML versions were tied to Windows 10 versions, something I’m disappointed Microsoft has regressed to after having learned their lesson with Internet Explorer and managing to decouple that from the Windows version.
The decision to move away from UWP, while counter to the goal of UWP in the first place, is one of the most welcome changes, if not the most welcome, being made. Having a traditional desktop app allows Windows 7 and 8 users, as well as Mac users, to enjoy the Microsoft Edge browser experience, just as Android and iOS users are now able to experience Microsoft Edge with features such as synced browsing sessions.
I only lament that this came at the cost of throwing out EdgeHTML altogether simply because it’s fundamentally a UWP application. And I lament even more that Chromium was chosen, even if I fully understand the reality behind the decision.
Collaboration versus competition
Forget the business side of things for a bit. I think Microsoft’s goal here is noble: they want to improve the Chromium experience for all. I mentioned “if you can’t beat ’em, join ’em”; that can either be a defeatist approach, or a constructive one in the long run, depending on how Microsoft ends up going about it. Reading the discussions among vendors in the W3C mailing lists it becomes very clear that honestly vendors have a great working relationship with a common goal in mind: to innovate and improve the web platform.
So, here’s my hot take: Maybe a monoculture isn’t inherently bad after all. A “monoculture” can turn out either good, or bad, and it depends in large part on what happens within that monoculture, what whoever holds the position of leadership does with their product. The prospect of having only one platform to test and validate web apps on sounds so promising on paper, right? Developers always want “one less browser to worry about”. You think I enjoy or get a kick out of launching every browser and draining all my system RAM just to make sure my awesome new component works correctly? What I enjoy is having a choice. Not being forced to choose them all (which isn’t really a choice).
The major downside to all this remains, however, because Chromium is still very much associated with Google by way of being an open source web browser whose flagship implementation is a Google product. That is Mozilla’s biggest concern (obviously), as well as mine. And no, my disdain for Chrome has nothing to do with that — my disdain for it has more to do with the fact that, unlike most other developers for whom IE and Edge are constant nuisances, Chrome is somehow the thorn in my flesh. My home page doesn’t work correctly in Chrome, and I haven’t been able to fix it after more than 3 years without tossing my implementation entirely (which as you might have guessed I’m not super keen to do). Some days I wonder if maybe I’m the one doing standards all wrong, not others.
But I digress.
Microsoft’s role in web standards going forward
So, with fewer independent implementations, how much of a standard do we have left? Chromium has been the de facto standard in web development for a number of years now. Which is ironic, because part of my disdain for Google Chrome is its continuous, flagrant violations of the standards laid out by standards bodies.
Don’t get me wrong — some of these violations are actually the sensible thing to do, and the Chromium team has been able to use their influence to effect meaningful and positive change to the standard. But others are downright egregious and don’t have any good reason to them. Did I mention the very random bugs that seem to surface with every major rapid release of Chrome? I’ve been meaning to start a page on my site documenting these bugs (not unlike positioniseverything.net) for years now, but never got around to it. Maybe this would be an excellent time to do so.
Anyway, what about Microsoft? You may want to read the document that’s been published by the Edge team as it covers a lot of the technical details around Microsoft’s open source strategy. But my focus is not on those technical details. Kyle from the Edge team shared his opinion with me on this and frankly, given the reality that we face, it’s something I wholeheartedly agree with, and I’m sure the others on the team as well (but, again, this is Kyle’s personal opinion):
The current state of the web is existence [sic] proof that a minority implementation can’t prevent monoculture just by existing. We as a team are better off using our energy influencing a leading implementation, so that both the standards and the leading implementation reflect different strategic viewpoints and engineering perspectives
My hope now is that, with someone as big as Microsoft playing a significant role in future development of Chromium, Blink and V8, Google will not get complacent. Google wields tremendous amounts of power and control over the web platform as it is, and it can choose to either use that power for good by collaborating eagerly with other vendors and the developer community at large to innovate and improve the web for all, or use that power for more nefarious, anti-competitive and anti-consumerist purposes.
If Microsoft can learn from their own mistakes of Internet Explorer, it behooves Google to do its best to avoid going down that path.
Why is Firefox still my daily driver after 12 years? Simply because Edge doesn’t fit my browser workflow. It doesn’t have the features I need, and the features that it does have, as with the rest of Windows 10, feel unfinished, unpolished, buggy and unstable. And while it’s made several leaps over the last few years, it still unfortunately has a long way to go. And I get the feeling a lot of it has to do with the equally immature UWP, and very little to do with EdgeHTML itself. Because EdgeHTML is very good at implementing web standards.
This is another reason why the move away from UWP is fantastic in my books. As legacy as the Win32 architecture is, it cannot be denied that it’s more mature and reliable than UWP. Besides, stuff like jump lists (my absolute favorite feature of the Windows 7 taskbar, no contest) and Aero desktop effects are still available. Plus there’s the UWP Desktop Bridge, which allows Win32 apps to use the features that are specific to UWP and that would otherwise have been limited to UWP apps.
The browser experience for consumers can only get better from here. There are things that Microsoft Edge does right, including innovations such as ink support, Cortana integration, and setting tabs aside, and I hope those will stick around.
When I first heard the rumors, my initial reaction was that of shock and grief. And as a Microsoft MVP I wanted to hear it from the horse’s mouth (don’t worry, Microsoft has reassured me that they will continue to strive to ensure we’re the first to hear new scoop as much as reasonably possible).
Make no mistake: I am disappointed at the situation and the decisions that have been made. But I fully respect Microsoft’s reasoning and goal behind these decisions. And there are immediate positive aspects to this to be had. Stuff like the Edge experience becoming more widely available across desktop platforms. Even if it’s not quite Microsoft Edge anymore, I guess.
Maybe someday in the distant (or not so distant?) future, we’ll no longer define browsers by their implementations of web standards. Let’s hope that when that happens, it’s not because one corporation has ruled the web and browser vendors, web developers and Internet users have to bend to their will — but because it doesn’t matter how a browser works under the hood anymore, and the web just works.
I only don’t know what that sort of future would look like. It’s a very strange future. Probably because we’re all used to the idea of diverse yet interoperable implementations. Not just the idea, but the ideal.
For now, I will continue championing open web standards, I will continue backing Microsoft’s efforts to improve the web for all in a “Chromium-plated web”, and I will continue using Firefox as my daily driver. If the next version of Microsoft Edge proves to be a compelling option for users, you can bet your bottom dollar I will recommend it fervently to developers and consumers.