Uncategorized

The “IE plateau” – a history lesson

Yeah.  More frequently posting on my blog != once a year.  I get it.  More on that later.

Since I mostly share on twitter, I usually don’t get around to writing out longer posts – it takes time to be interesting and sound coherent when you’re not restricted to 140 characters.  But sometimes I want to say something that I just can’t sanely fit into 140-character blocks, no matter how hard I try.

One thing that cropped up in a conversation yesterday was “what happened to IE after IE6”.  I was a little aghast at the wild rumors of engineers fleeing the team due to political issues, since that wasn’t what happened, and since I’ve said this publicly before (e.g. my keynote at the Ajax Experience in Boston in 2006), I figured I might as well reiterate.

As we were finishing up the product cycle of IE6, the engineering team was still really excited by the technology and innovation we’d been doing in the web platform. (Newbie, before you go bothering entering random IE-bashing in that comment box, go find someone who was around on the web in 2000.  IE6 *WAS* the best.  Well, okay, maybe IE5 Mac.)  However, we’d been seeing very little adoption of the rich client platform we’d built; it was hard to build rich, sexy applications, and Flash was starting to take off.  Outlook Web Access was the “biggest” rich web app around.  The dot-com bubble was bursting.  There were a few experiments with “Web OS” – that is, building a desktop on top of the web platform – but they were slow and lacked functionality (probably because they also lacked a business model).  Finally, we were also getting mired in backwards compatibility – it’s all very well to say you should fix standards bugs, but we kept breaking current pages.  People get upset about that – both developers and customers. (As an aside, I’m a big fan of the IE compatibility mode solution we implemented in IE8; I only wish we’d done it in IE7.)

And, of course, we were pretty far ahead of the competitor’s released product at that point, and sadly, Microsoft does seem to work best with strong competition motivating it.

At the same time, Microsoft really needed to invigorate the Windows API.  We’d learned a lot of lessons from our experience with the web platform – e.g. that markup is a great tool for developers to use alongside code, and that managed code languages are easier in many cases than C++ – and we wanted to bring those tools to building Windows applications.  This led us to start working on the platform re-think that eventually became WPF/XAML/.NET3.0 – and that’s what most of us moved over to work on in that timeframe.

On top of that, that time period was also when Microsoft (and the broader industry, but Microsoft in particular) started getting hammered with security issues, since hackers started realizing they could get PAID for finding ways to insert software into users’ machines.  This took a tremendous effort to address, and a sea change in writing secure code; it was quite impressive to see the response to that challenge internally, but that’s a story for a different day.

So, unfortunately, this was a perfect storm that led to the “IE plateau”.  Happy it’s over.  Glad to see that the web platform isn’t in too much danger of becoming homogenous again any time soon.

-C

42 thoughts on “The “IE plateau” – a history lesson

  1. “I’m a big fan of the IE compatibility mode solution we implemented in IE8; I only wish we’d done it in IE7.”

    I only wish IE8’s compatibility was a 1-to-1 copy of IE7 instead of a new browser essentially with differences and new bugs that IE7 didn’t have. Aside from lack of standards support, compatibility was my biggest complaint. It doubled the work required to test websites because you have to test IE7 and IE8 compatibility mode separate. Big mistake in terms of developer relations. I hope IE9 does not follow the same path.

  2. Yeah, yeah, just keep telling yourself that… the rest of the world knows that Microsoft’s intentions toward the Web have for the most part been less than honorable.

    IE6 has been the bane of Web builders’ existences for nearly a decade, and has cost the sane advancement of the Web years in terms of people having to waste time and resources on cross-browser compatibility.

    Just the way Microsoft wanted it, I suspect…

    Thanks for nothing.

    1. Note that I didn’t say anything about Microsoft’s “intentions toward the web” – but regardless, I can only offer you some free advice, worth what you paid for it: Move on.

  3. Oh, look, a Microsoft blogger patting his browser on the back for sucking. IF IE6 IS SO AWESOME, WHERE’S MY ROUNDED CORNERS, JERKBAG?! Seriously, why don’t you just switch to WebKit and send Trident to go die in a fire with Vista.

    Stop making the web a nicer place to work and live, stop removing roadblocks to standards adoption, stop driving progress in the HTML and CSS working groups, and above all, stop giving open and rational explanations when I demand them.

    I don’t want to understand, and I don’t want to cooperate. I want to be miserable and angry. I want to hate you. I have to hate you. Please.

  4. I get all that… but a 5 year plateau? Even with all those problems… I mean maybe 2 years. But 5 years?

    So what is the benefit to MS to keep doing their own rendering engine? I know competition is good, but I think we’ve got enough competition out there already years ahead of IE. Seems IE9 will deliver half of the stuff webkit was delivering last year.

    Why not just integrate an open source rendering engine that’s already on its game?

    I mean that in the most non-douchebagy way.

    1. You’ll have to ask the IE team that question; it’s not for me to answer. (and I mean THAT in the most non-douchebaggy way. Srsly.)

      On the 5-year plateau, it was really a 3-year plateau – we shipped IE6 in 2001, and I moved over to IE to lead the platform PM team in late 2004. IE’s product cycles just seem to have settled in at around 2 years.

      1. 5 years between IE6 & IE7 is what I’m referring to. From my calculations… its just over 5 years.

  5. Right – I meant the additional time in the IE6 release plateau. IE6 -> IE7 was 5 years. Average IE cycle = 2 years. “Additional plateau” = 3 years.

  6. Thanks for the interesting history lesson. That’s more or less what I had guessed from the hints that were dropped from time to time on the IE blog.

    I would have said that the “Vista reboot” (restarting development from the server code base) was also involved. Maybe it happened later than the plateau or had not tha much effect on ie7 development.

    Regarding “Microsoft’s intentions toward the web”, I think it’s nonetheless an important question. I can understand that, since you work there, you may not be in a good position to discuss it, but sometimes it’s hard to believe that a combination of circumstances is enough to explain the lack of willingness to interoperate shown by some teams at Microsoft (e.g. the Office team’s choice to not interoperate with everyone else regarding spreadsheet formulas). Whether someone high up could have pushed for some work on the rendering engine during this period and chose not to, we have no way to tell (and I doubt anyone could really tell without having been personally involved there). Things like that end up costing a lot by sinking the enterprise’s reputation.

    Well, that’s a lot of negativity, and the comments above show that the resentment left by the plateau is still very much alive. I for one will tell that I’m grateful to the ie team for the work they have done since ie7 (even though there are decisions I don’t like much, e.g. supporting h264 only), and to the other team that embrace interoperability and more to more openness.

    Thanks for posting here from time to time, too!

  7. IE4 and IE6 were huge improvements that let people do crazy new things, even though most wouldn’t notice things like XHR for years.

    I remember what a pain it was each time a new release came out and stuff broke. It was partly the plateau that gave a stable platform to build web 2.0 on… not a popular view these days, but it was. Part of the problem was that the tools and frameworks weren’t there.

    I think the 2 year or more cycle served its purpose though. It is time for continuous update and a subscription model to match. For example, if there is bug to work around in Chrome, I can report it and not bother with a workaround for that current version since I know that it will get fixed, and no one will be using the old buggy version. Coordinate with release cycle and you’re done.

  8. Four years ago on the old Albatross, commenters kept demanding that IE switch to Gecko. Now they demand that it switch to WebKit. We sure have come a long way 😉

  9. I find the IE platform just depressing, in spite of IE8. IIRC, IE7 was outsourced to some amateurs and it felt horribly slow, e.g. the long time it took for the browser to open a new tab. IE8 feels the same way. That’s why I never use IE anymore. It’s too bad… I started using IE3 back when there was the WSJ promotion, and stayed with it for years. Times have changed, MS is in the past. The world is Firefox now. And my nontechie wife and kids gravitate to Google chrome. If I could uninstall IE I would. At least it doesn’t come on Macs…

    1. Outsourced to amateurs. Ouch. 🙂 Really, it was the “let’s rebuild the team from near-zero while being pummeled with security issues”.

  10. It’s interesting to hear your take on this, and I have no reason to disbelieve you, but still I find it strange that it fit so well with the obvious business imperative of ensuring the web did not undermine Windows, particular when there is smoking gun evidence that such a thing was a concern at a top level in Microsoft: http://annevankesteren.nl/2008/03/office-sucks

    Even now IE is back in active development, the fact remains that Silverlight has had four releases in the time that IE has had two. And yeah I know what you’ll say about proprietary platforms vs standards-based ones, etc, but I still wonder exactly what the level of resource is for both of these teams, and whether Microsoft couldn’t push IE along a bit quicker if they really wanted to.

    1. Well, if Bill had really wanted to ensure the Web did not undermine Windows, they never should have approved driving IE as hard and fast as they did in the 4.0-6.0 era. Microsoft opened its own Pandora’s Box.

      Top-level motives aside, I’ve continually advocated for more effort applied to the web platform in Microsoft. I’m not totally convinced a radically shorter development cycle would be a good idea, though – see next reply, but also note that the Silverlight platform is essentially side-by-side; changes don’t affect old Silverlight applications, like they do on the web (because web developers tend to reject versioning).

      1. But Netscape was already opening that Pandora’s Box with their Constellation project ( http://delong.typepad.com/egregious_moderation/2009/01/john-gordon-why-google-loves-chrome-netscape-constellation.html ). That was a far greater threat to Windows, and Microsoft pushed IE at an incredible pace until it no longer existed, then did nothing for years.

        Again, you were on the team, and I’ve no reason to disbelieve your side of things, but all I can tell you is how it appeared from an outside perspective: That Microsoft developed, then mothballed, IE for business reasons related to maintaining the dominance of Windows. And what’s more, those business reasons haven’t gone away, which is why many web developers still find it difficult to trust Microsoft, because whatever your progress with IE or your activity in standards committees, there is always an underlying assumption that you are looking to constrain the web platform to protect your revenue streams from Windows and Office.

      2. Jon, Netscape Constellation was really more of an infostream aggregator on the server side, IIRC, than a local client OS. Google’s ChromeOS thinking is more to that competition than anything.

        But my point was that IE opened the Pandora’s Box of client-side programming power through the browser; no one else had exposed as much of a dynamic programming platform in HTML/CSS/JS at that time.

  11. I agree with Steven. The 2 year release cycle is dated. Google’s update model for chrome works very well. As an end user I don’t even pay attention to what version of chrome I’m on because I trust I’m always on the latest.

    With that said I’m looking forward to IE9.

    1. I hear you, and as a technically-literate enthusiast end user, I agree; I like the frequent-release, auto-updating model. But remember that we’re not the average end user – particularly not the average IE end user. I’ve had to be tech support for my mom when we made relatively minor UI changes in IE, and I’ve also had to advise her when her favorite web sites are broken (temporarily) due to a new release.

      This problem is radically exacerbated in enterprise environments, where new software changes can mean retraining as well as compatibility testing, and the internal software (web applications) may not be easily updatable – or at the very least, it costs the corporation real money to do updates.

      I’ve had a long personal history of seeing what small changes to correct blatantly wrong behavior can do to compatibility; it’s not pretty. Certainly as browsers all successively approximate “correct” behavior (aka figuring out what correct interoperable behavior is, when it’s not well-defined), this problem will lessen – but it won’t go away.

  12. Two things:

    1. you should indeed blog more, +1 on what Dan Connolly said.

    2. product cycle, company policy, and “you suck” comments: most commentors don’t seem to work in a big enterprise. Namely, they don’t seem to see how complicated it is to evolve a product when it is so much related to other products in the company, be they good or bad (development frameworks, Sharepoint suite, etc.).

    This is, actually, the main reason why I don’t blog about the company I work in. I have no time for flame wars.

    (Oh, and I’ve been using and avocating Firefox for several years but yeah, IE6 in 2000 rocked, and MS was very early and energetic on CSS adoption, back in IE3. Just in case anyone puts me in the fanboy box: I’m not a fanboy.)

    1. Heh. Thanks for getting the point.

      I’ve never minded the flame wars, or even the trolls, who are frequently amusing. I find fanboys frustrating – whether they’re Microsoft fanboys or the competition’s.

  13. The problem with IE wasn’t innovation. It was things like ActiveX that kept people who didn’t have Windows machines running I.E. from viewing a lot of web content. It would be one thing if Microsoft created better HTML and CSS coding that others could copy. (Sorry, the tag doesn’t count). It’s another when it got to a point where users were told that their ISP would only support Windows and I.E. 6.0 or that entire websites (like Disney) specifically stated: You must use a Windows Machine and Internet Explorer to view this site.

    Most of this wasn’t innovated, but political. ActiveX is a big security hole, but it allowed much of the web to be Windows only since ActiveX content required Windows DLLs to function.

    Microsoft also spent millions on buying ISP loyalty. I worked for an ISP and we were offered free equipment and training if we made I.E and WIndows the “primary” platform for our users.

    I’m glad to see Microsoft finally taking standards seriously. But, technologies like Silverlight are basically heading in the wrong direction. Especially at a time when the very similar Flash itself is under attack. When will Silverlight for Linux based Android or RIM be around? (I’ll give you guys a pass on the iPhone OS version).

    Innovate, but make sure it’s not an excuse for locking users into a Windows only world.

    1. > When will Silverlight for Linux based Android or RIM be around?

      MS does not have that much experience in developing for Linux. On the other hand, they have actively helped the Mono/Moonlight project which is developing a Silverlight clone that work on Linux.

  14. I do want to comment as someone who was not only around at the time but remembers all too well the sorry state of browsers prior to about the IE6Win/IE5Mac era:

    IE6 was a very good browser relative to the competition at the time–NS4 was a complete disaster from almost any perspective, and was FAR worse when it came to CSS support than IE6. It wasn’t until a considerable time later that Firefox finally surpassed IE6. (IE5Mac was probably better than IE6Win, but I’ll leave that aside, as will I leave the tragedy that IE6Mac actually existed as that subscription software abomination but was never released to users in any practical way.)

    But that’s the thing; the reason that IE6 evokes such a visceral, seething, burning hatred in web people like myself today isn’t that it wasn’t a good browser at the time. It isn’t even the proprietary technologies that it included. It’s the simple fact that there are a relatively small number of egregious and obvious CSS bugs in it that went un-fixed until IE7 five years later.

    Now, I didn’t work on the IE code, and it’s probably far harder to fix, say, the 3px float bug than it seems. But most of those bugs–and bugs they were, by any measure–had existed since IE5, yet gone unfixed. And while it’s possible fixing the float bug would have broken existing pages (some of the container expansion bugs probably would have), a lot of the minor but fiercely annoying ones don’t seem to have any practical application in existing pages apart from making things look weird if you don’t take them into account.

    So the issue I, at least, have with IE6 is simply that there were small but destructive bugs in IE5 that not only weren’t fixed in IE6, but continued to sit unfixed for five years. FIVE YEARS. Or call it three. THREE YEARS. I would argue strongly that at least SOME of those were .x release-level issues, not even something that would require a full version step up or hose the existing web. It’s not like FF or Safari or Opera haven’t had similarly annoying bugs–it’s just that they almost always get fixed in a timely manner, in a dot release update.

    Says something that the Mozilla team could literally write a competitive browser, from scratch, in less time than it took to even get started on IE7. I suppose one could argue that the IE team did the same thing during the ~2-year dev cycle of IE7, but that doesn’t help the point any.

    Don’t think I’m disparaging the IE team on any of this–I blame it almost entirely on management, since I can only assume the decision of where to spend time was made at a higher up level.

    Anyway, just trying to make it clear that there are those of us who recognized IE6 as a very good browser in its era, but still harbor a deep-seated, almost unexplainable hatred for it now, and for completely different reasons. Doesn’t help any that 7-year-old technology still has 20% market share, so it still hurts all these years later.

  15. Oh, should have mentioned: In fact, even IE4 on Mac was a better browser than NS4. That’s how sad the state of affairs was at the time.

    I threw myself a little party when I saw NS4 drop below 1% in the logs.

    1. Hey Marc-
      I hear you, and your comments are right on. As for not fixing the bugs – hey, I would have loved to; but we just didn’t have a team working on rendering and standards bugs at the time. I made it a top priority in IE7 when I got back :).

      Even then, though, it was problematic for web developers; because we didn’t fix “ALL” the bugs, and then the market was fragmented even more. And even then, as you point out, we can’t force users to upgrade (which would be ideal, for web developers building new content).

  16. It is quite amazing that something that was awesome at the time it was released is now dreaded by developers around the world.

    I’ve got a target date (by mgmt) of June 2011 that I’m allowed to unconditionally drop all support for IE6 and I look forward to that day like winning the lottery! (much alcohol will be consumed during the celebration I’m sure)

    IE9 looks to be an absolutely amazing browser (hard words for me to utter) and thus I can’t wait until it becomes IE’s most used version.

    The only issue I have is one that you and Microsoft can’t control… the long tail of support.

    Roughly speaking, if each browser version sees active life in the enterprise market for 10 years… it will be 2021 before all the “really-buggy” versions of IE are gone 😦

    Ah, the life of a web developer – always an entertaining challenge. 😉

  17. Pingback: About Abdul
  18. From WP: “In a May 7, 2003 Microsoft online chat, Brian Countryman, Internet Explorer Program Manager, declared that Internet Explorer would cease to be distributed separately from Windows (IE 6 would be the last standalone version); it would, however, be continued as a part of the evolution of Windows, with updates coming only bundled in Windows upgrades.”
    He was right about that it was “part of the evolution of Windows”, since Longhorn was at this time nothing more than probably the mock-up shown in the following video:

Leave a reply to cwilso Cancel reply