The rise, fall, and rehabilitation of Internet Explorer

The browser that had it all, then lost its way

Microsoft

Windows XP is dying, and with it the last of IE 6 -- a browser that went from being ahead of its time to a fossilized platform holding companies back. With IE 10 and 11, "the browser you love to hate" seems like a modern browser that’s discriminated against more for reasons of history and loyalty than for any real technical reasons. But you can’t always ignore history and start from scratch, especially when you realize how much Microsoft had in its grasp in the 1990s and how much of the web platform Google and Mozilla have brought us since it let slip through its fingers back then.

Why were there so many missed opportunities? Why did IE drop the ball, what made Microsoft wake up to the potential of the Web -- and will IE be able to stay modern in the world of living standards that never stop changing?

Part One: The browser that ruled the web

In the kind of irony that has affected Microsoft disturbingly often during its history, the company was early to the party -- then changed its mind and went home before the cool kids arrived.

Stranded on the Cornell university campus at the end of a recruiting trip in February 1994 by a snow storm, Steven Sinofsky -- then technical assistant to Bill Gates -- wandered through the computing rooms to find students using not Microsoft Office and other desktop software but web browsers. He emailed Gates and his team a warning; Cornell is WIRED!

That got more attention than J Allard’s memo the previous month which he’d titled "Windows: the next killer application for the Internet." Allard had been trying to get Microsoft to take the Internet seriously since he joined the company in 1991, and created the company’s first Internet server as part of a skunkworks project. He thought Microsoft should build its own browser and tried to convince Russell Siegelman to base Microsoft’s planned MSN service on web technologies rather than a proprietary system.

Rob Glaser, who had successfully got Microsoft into multimedia, was suggesting the same thing but when Siegelman suffered serious illness, he decided not to push the MSN team to decide in his absence. That turned out to be an expensive decision in the long run, but the Internet enthusiasts had caught Gates’s attention. At an executive retreat in April 1994, Gates and other key Microsoft executives argued their way through a 300-page briefing put together by Sinofsky, and Gates spent his annual Think Week retreat concentrating on the Internet.

The problem was that Gates didn’t see how you could make money from the Internet. The group at the retreat decided to add TCP/IP support to Windows 95 and give Word the option of saving documents as Web pages, but nothing more radical. That soon came to look like a mistake as Sun worked on Java, promising a future where the web could deliver programs to any computer, and PDF started to replace Word files on the internet as a way of distributing documents. Both Windows and Office began to look threatened. Bill Gates’s famous Internet Tidal Wave memo came out in May 1995, just a few days after Sun launched Java, and in November 1995 Goldman Sachs took Microsoft off its "buy" list because of the Internet threat.

In fact, Microsoft had already started work on its own browser, first trying to buy the BookLink browser Sinofsky spotted at the Comdex show in 1994 only to see AOL snap it up for $30 million, then licensing code from Spyglass who had the rights to NCSA Mosaic -- the very first graphical browser, built by graduate students who worked for Larry Smarr.

Then the head of the National Center for Supercomputing Applications, now running the California Institute for Telecommunications and Information Technology and a pioneer in quantified health, Smarr remembers pitching businesses on the huge potential web browsing might have for them -- if only it had a graphical interface.

Everyone has heard of one of Smarr’s students who worked on the Mac version of NCSA Mosaic: Marc Andreessen, who went on to found Netscape with SGI’s ex-leader Jim Clark. They set up the company the day after the Microsoft executive retreat, and originally called it Mosaic Communications Corporation until Spyglass’s lawyers pointed out that they owned the Mosaic trademark.

Not as many have heard of Chris Wilson, who co-authored the Windows version of Mosaic and went on to work at Spry (the first Mosaic licensee). When Wilson moved to Microsoft in summer of 1995, it wasn’t to join the IE team; he worked on web search and was part of the team building Blackbird, a graphical interface for creating content for MSN’s proprietary system, designed to compete with the dial-up AOL service.

Microsoft

Brad Silverberg was already thinking about the Internet when Windows 95 launched.

But the fact that someone who had already built a web browser was working at Microsoft didn’t go unnoticed and Wilson (who later became the leader of the W3C’s HTML working group and now works at Google) joined the IE team soon after the first version shipped in the Windows 95 Plus pack. In 2006 he joked that he’d spent ten years working on IE and would spend the next ten years making up for it.

The Internet Explorer team grew and grew, from half a dozen people working on the first version under Ben Slivka, to nearly a hundred people working on IE 3 under Brad Silverberg, who was fresh from the success of delivering Windows 95 and became head of the new Internet Platform and Tools division in February 1996. By the time IE 5 shipped in 1999, there were 1,000 people on the IE team, but it was Silverberg’s team of "superstars" (as he and the other managers of IE still refer to them), who worked day and night to build what they thought was the future of the company.

"The most incredible product team I ever worked with," Silverberg told us. "Such a small team, so many unbelievable superstars all working together as a team in some of the most inspired work of their career, under massive pressure and the highest possible stakes. A bit like the original Mac team, the IE team felt like the vanguard of Microsoft, the vanguard of the industry, fighting for its life. Culminating in IE3 which was a brilliant product and changed the rules of the game, both for the industry and for Microsoft -- showing Microsoft could be a leader and a good citizen. It was a reinvention of the Microsoft culture."

"Our work was more than work," remembers Hadi Partovi, the leader of IE product management until IE 5. "It was a passion and life mission.  We ate all our meals on the job; we worked very, very late nights. I would often go to sleep under my desk at 6 am only to wake up the next morning at 8 am ready for work. We had this sense that this multi-billion-dollar company was going to lose its future unless we could get ahead of the Internet wave, and that meant having the number one browser on the planet."

Getting to number one

In the early 90s, Internet Explorer was just one of over a dozen web browsers on Windows and Mac. Microsoft and Netscape competed to add new features for building more powerful websites in successive versions as well as competing over the best way to build a browser business. Was it was fair for Microsoft to include a browser free in Windows when Netscape was charging up to $12 for it (and even charging magazines to distribute evaluation copies on their cover discs, and then charging them again when their readers bought a license)? Did Microsoft buy its market share by pressuring PC OEMs and bundling IE with Windows or earn it by building a more powerful browser that didn’t crash as often?

Netscape CEO James Barskdale was always ready to mock Microsoft’s ability to create a browser and web server; Silverberg once thanked him for the "trash talk [that] helped us get motivated" and Paul Maritz, then group vice president for platforms (including the web, which meant he was boss to both Silverberg and the new head of Windows Jim Allchin) pointed out that “the thing that really motivates [Microsoft] is paranoia and competition."

But the war of words was matched by the battle of leapfrogging improvements -- and senior figures on both sides look back today and call their competition worthy opponents.

Released in August 1996, IE 3 wasn’t just a browser, or even just a standards-based browser (something that was a very un-Microsoft approach in those days). Years before the idea of web apps was widespread, IE 3 was designed to put the web everywhere.

"The vision for IE3 was to change the rules of the game and go all in on the internet," Silverberg told us. "The idea was that the internet should be part of every app, not just something confined to the walls of a browser window. We componentized IE3 with a very elegant architecture, so that anyone could build a browser, so that anyone could include whatever of the internet they wanted in their app. We won over AOL to build their internet client using the IE3 components.  I viewed IE3 the browser as just another app using the IE3 components.  Any app now could incorporate HTML for example into the app, say for displaying dialogs or for help."

Meanwhile, Netscape developed the LiveScript programming language which it launched as JavaScript (although with only a tenuous connection to the successful Java language). Microsoft came up with Dynamic HTML behaviours and won friends at ISPs by giving them tools to add their own branding to IE, but it also supported JavaScript -- and used it to build what was probably the very first Web app.

To be able to show your Exchange emails in Outlook Web Access in IE 5, Microsoft developed XHR, the basis of what we now know as AJAX; a technique many Web apps are still based on. IE was the first browser to have autocomplete, in the address bar and in forms, and you could argue that IE’s channels for following content were the first version of what became RSS. IE 3 had the first commercial implementation of CSS in August 1996; Netscape didn’t add that until Netscape Communicator 4 which shipped almost a year later.

By IE 4 a year later, Microsoft’s browser included many of the foundations for the Web as we know it now, and IE 5 in 1999 was widely hailed at the time as a better browser than Netscape; even Firefox VP Johnathan Nightingale agrees "whatever else, IE 5 was a solid product."

Partovi jokingly puts some of that down to the "latte challenge" he ran in the IE team: If anyone could find more bugs that crashed the browser than he did in a week, he’d bring them a latte every day for the next week. It was a fun way to motivate developers to focus on making the browser reliable enough to use for real work.

Part Two: Downfall

In many ways, IE was a victim of its own success.

After a few years of fast and furious improvement (and furious competition leading to lawsuits), Internet Explorer began to stagnate. Netscape had distributed more copies of its browser than there were users on the Internet, but whether because of better features or just because it came with Windows, in 2002 and 2003 IE peaked with 95% market share.

As building a browser became more and more demanding, smaller browser vendors simply couldn’t keep up -- or compete with a free browser. Spyglass found that many of its other licensees were dropping out of the market because of the dominance of IE, and because Microsoft wasn’t charging for IE it was only paying Spyglass a minimum royalty (resulting in a dispute that was eventually settled out of court with an $8 million payment from Microsoft that left the company owning the Mosaic license).

In 1998 Netscape announced that its browser would now be free; some months later the company was bought by AOL. But Microsoft had won a pyrrhic victory in the browser wars.

With no effective competition, there was less to spur the IE team on -- and by taking Microsoft to court in 1998 for tying IE to Windows, the Department of Justice provided an incentive not to invest in new versions of the browser. The consent decree in 2000 hampered Microsoft’s ability to integrate features effectively until very recently, originally for legal reasons but after that because not integrating had become ingrained into the company culture.

Microsoft

Even while Vista was starting, Jim Allchin took XP SP2 and IE back to the drawing board for security.

Around the same time the W3C, the standards body that defines HTML and other Web standards, went down a dead end for years trying to come up with the next version of HTML.

The working group turned back to the SGML roots of HTML, trying to come up with a strict and definitive way of building pages that would be less error prone but also far harder to develop for. The web was the Wild West of development and the W3C sheriff was trying to impose order, but plenty of people preferred the freewheeling opportunity of the online frontier.

In 1998, the HTML working group decided to essentially abandon HTML 4 and start rebuilding it in XML as a "fresh start." It was also abandoning the techniques developers were using for the first web apps, saying in 1999 "after careful consideration, the HTML Working Group has decided that the goals for the next generation of forms are incompatible with preserving backwards compatibility with browsers designed for earlier versions of HTML," and the "W3C has no intention to extend HTML 4."

With the future of HTML mired in committee, Microsoft looked elsewhere for powerful development platforms. Ironically, like the W3C, Microsoft itself was interested in XML; Jean Paoli pushed Microsoft to follow his vision of self-describing information schemas and services based on open standards that would work cross platform, codifying almost any kind of information. In 2001 Gates talked up the idea of Web services, based on XML, unlocking the flow of information in a way that the "dumb terminal" browser couldn’t. XML, he said in a memo introducing .NET, project "is a lingua franca for the Internet age. Just as the Web revolutionized how users talk to applications, XML transforms how applications talk to each other."


MICROSOFT

The .NET XML grand vision.

Paoli’s ideas about smart documents surfaced in a Microsoft project called NetDocs, but that was shut down in 2001 because it competed too much with Office; the underlying technologies turned up in the InfoPath forms tools and Microsoft’s own ecommerce systems, but they didn’t replace the browser.

From .NET to Longhorn

Windows "Longhorn" was an ambitious project, an OS written in C# and .NET including communication and presentation technologies designed to be more powerful than what you could then do on the Web.

The whole OS never shipped (a dramatically pared down version eventually became Windows Vista), but it did spawn competition for the browser in the shape of managed code that would run on Windows or in the browser -- thanks to the Silverlight plugin, which the team originally called WPF/E. Depending on your viewpoint, that stood for Windows Presentation Foundation Express, or Windows Presentation Foundation Everywhere; WP/E would run on Windows -- desktop and server -- on Mac and Linux, on phones (Microsoft’s on Windows Mobile and Nokia’s Symbian) and on embedded devices (Windows CE powers everything from sewing machines to meat-slicers in slaughterhouses).

Although opinions on the potential of .NET varied inside Microsoft, attention turned from building the Web platform to building .NET and Longhorn. Many of the people who had built the Trident rendering engine for IE moved on to work on WPF after IE 6, including Chris Wilson, and that left fewer resources for IE. "To oversimplify," IE head Dean Hachamovitch put it later, "they wanted to make developing powerful, secure applications and sites a lot easier."

WPF started with the drawbacks of Microsoft’s DHTML approach, according to Wilson. "It doesn't use local resources, it doesn't run better with a better graphics card, the security model is a bit of a challenge and tool support is always a challenge. That's when we sat down and said we need a new platform." WPF was intended to be "a unified platform for documents, user interface and media including 2D graphics, frame synchronised audio and video." But while WPF code could also run in the browser, it was about using the power of Windows.

That was different from Silverberg’s vision for the browser, which in retrospect looks like a politer version of Marc Andreessen’s intention of "reducing Windows to a poorly debugged set of device drivers."

"We wanted Microsoft to be in the vanguard of the internet and be a good citizen, so we worked closely with the IETF and W3C and innovated with things like CSS3 and other ways to improve HTML so it could be easier to develop for and have a user experience more similar to native," Silverberg remembers. "We believed the future of PC apps was internet apps, both client and server side, and that is what drove IE4, whose innovation was DHTML, DOM, XML, and essentially what is AJAX and the modern web. We didn’t know where it would all lead or how it would all be used, but that was most definitely the vision."

Looking back, Scott Berkun, (who carefully notes that he worked on IE until version 5 and not 6) believes "Netscape and Microsoft were after the same thing, control over the next platform -- Microsoft hoped DHTML and Channels would dominate how content was created, and that IE (on many existing platforms) would lead the market for how content was consumed. Netscape had a similar strategy, with versions for many platforms, and the browser wars of 1995 to 1999 can be looked at as two organizations with very different histories sharing the same ambition and many of the same tactics (with the W3C, the only real champion of an open platform, playing the frustrating role of the United Nations during a world war)."

It was a battle fought inside Microsoft as well, as Berkun points out.

"The plan was for the web to replace Windows as the platform and that’s why there was, for the first time in history, a UNIX version of IE (as well as a Mac Version). Microsoft’s DHTML wasn’t intended just to be for the web, the ambition was for it the complete platform of the future. Silverberg saw the writing on the wall for the Web and how the world would move away from the PC and OS centricity. Many of the features of IE4 were built on the notion of making the web central to everything." 

Silverberg agrees that there was a grand vision for IE. "With the Web (and the Internet), I saw it as the 'manifest destiny' of personal computing — the way to really get personal computing, with people being more productive, having more fun, and connected to each other, all over the world, with people of all ages and socio-economic classes.  It was so easy to use and so powerful, I believed in it as a superior way of interacting with the computer."

It was Windows vs. IE -- and Windows won 


MANU CORNET, BONKERSWORLD 

The classic view of Microsoft explains the fight over the role of IE.


After the release of IE 4 in October 1997, IE moved into the Windows division "which did not share the same vision for the Internet and Microsoft playing a leading role," as Silverberg later put it. "They were Windows-first rather than Internet-first."

That’s a polite way of saying that the browser upstarts had lost the internal battle and Jim Allchin, representing the status quo of "big Windows," had won.

Allchin had taken over the consumer side of Windows from Silverberg after shipping Windows NT and was busy turning both operating systems into a single platform. The idea of giving away a browser that was a free operating system for the web platform, when there was no clear business model for making money from it, had not convinced a leadership team used to regular profits.

After all, all the way back to Gates’s very first memo pointing out that copying software was stealing, Microsoft has seen software as a business proposition.

"I don't want to be remembered as the guy who destroyed one of the most amazing business in history," Allchin wrote in an email, complaining about "engineers who didn't understand and didn't have any responsibility for the financial aspects of the company at all. Who live in this paradise where the stock goes up, revenues keep going up, earnings keep going up. And all they have to do is crank software. Somehow it gets into packages and makes money. Well, it doesn't work that way."

In fact, if you view the Microsoft rhetoric about dominating the Web and protecting Windows, and Allchin’s email saying "we need something with more Windows integration" as part of the internal power struggle between Windows and Internet Explorer rather than just a response to the growing importance of Netscape and Sun, it seems a lot less tone-deaf and a lot more like two competing visions of the future. Tying Internet Explorer to Windows wasn’t just about beating other browsers. It was about beating the Internet Explorer team.

The next two versions of IE consolidated Microsoft’s domination of the browser market. But as the Windows team (now including a number of key IE developers) started work on Longhorn, the browser slipped into a limbo of unambitious maintenance releases. Microsoft stopped putting out independent versions of IE and tied it to new releases of Windows. The web was no longer the platform.

IE 6 was a good browser when it came out in 2001, although IE insiders saw it as a shadow of what it could actually have been. But for the next three years it got only minor annual updates. The most significant was part of the major security overhaul in Windows XP SP2 that came out in mid 2004 and actually involved what IE 6 developer David Aroncheck calls "a complete security revamp for the IE codebase." The SP2 version of IE included Group Policy for the first time and at one point the team considered locking IE in XP down as securely as in Windows Server 2003.

The rest of the now far smaller browser team’s time was taken up bringing the browser to different versions of Windows (like Media Center and Tablet PC) including the 64-bit versions of Windows XP plus Windows Server, building a version of IE based on WPF and XAML as part of the original Longhorn OS that never shipped and rolling out hundreds of thousands of custom changes for enterprise customers. Not only did the Longhorn project focus Microsoft’s attention on .NET and XAML rather than HTML as the future, it also sucked the Windows team into a five year morass of missed deadlines and project resets. What shipped as Vista was a long way from the original code (or the betas that were released in 2003 and 2005); it wasn’t just IE falling behind during those years.

Members of the IE team were also busy defending against a lawsuit from Eolas. This one-person company claimed to have created the first browser to support plugins in 1993. It patented the idea in 1994 and sued Microsoft in 1999. In 2012 a Texas jury finally invalidated the patents and the US Court of Appeals agreed in 2013. But that was too late for Microsoft, which had modified IE to work around the issue in 2006 -- taking more development time away from catching up with competing browsers -- and settled with Eolas in 2007.

Meanwhile, Microsoft’s view of the Internet for consumers was focused on building up MSN to compete with AOL, who still had a significant proportion of online users and more members of the IE team moved on to work on MSN Explorer. That seems shortsighted, given the rise of the web and some as Microsoft found it frustrating; as Havi Partovi put it later, “it has always been sad to see the Internet side [of Microsoft] define itself more based on who it wanted to compete with (Netscape, AOL, Yahoo, and Google), rather than defining its own vision of what it wanted to be.”

Firing up Firefox from the ashes of Netscape

All this meant IE was effectively in maintenance mode after 2001, and for all the IE team’s hard work it would be more than five years before IE 7 shipped -- two years after Netscape’s browser had returned from the dead as Mozilla Firefox.

Strictly speaking, Navigator didn’t die, it just got bought by AOL. But between the popularity of IE and the increasingly poor performance of the exceptionally buggy Netscape Navigator 6, usage of Netscape was minimal. Netscape had set up the Mozilla open source project before the sale to AOL and for several years Netscape incorporated Mozilla code into its browser releases. The dotcom collapse led to major layoffs at AOL in late 2002 and after the $750 million antitrust settlement and AOL’s 2003 agreement to stick to its contract and carry on distributing IE, the company turned the Mozilla project into the non-profit Mozilla Foundation with $2 million in seed funding.

shawe_ewahs via Flickr

Mozilla carried on cleaning up and rewriting the Netscape code, releasing a browser that was called first Phoenix, then Firebird. and finally Firefox. Firefox 1 came out in 2004 with the tabbed browsing and separate search bar that Opera had introduced and it quickly started gaining market share and adding features. Meanwhile, Apple had released the first beta of Safari in early 2003.

Soon after that, arguments about how web apps should be written turned the long-running disagreements between the W3C and some browser creators into a formal split. Since the end of 2000 W3C had been working on XForms, which was strongly tied to XHTML. When this was formally proposed in 2003, both Apple and Opera rejected it, calling it not “appropriate for the Web.”

In 2004 the Mozilla Foundation and Opera got together to propose new standards for web applications at the W3C to deal with the "rising threat of single-vendor solutions." When the proposal was voted down, Mozilla’s Brendan Eich, the creator of JavaScript, Ian Hickson (then at Opera, having worked at both Netscape and Mozilla, now with Google and also famous as the author of the ACID tests), and others "managed to get Apple, Mozilla and Opera co-operating" to set up the Web Hypertext Application Technology Working Group (WHATWG).

WHATWG was a reaction against both the direction and the slow pace of the W3C. The plan was to get a spec out by the end of 2004 -- far faster than the W3C group was moving -- and to build on HTML.

For the next few years, WHATWG was the way the "modern" browsers drove HTML -- and Microsoft wasn’t formally involved. Microsoft’s Chris Wilson was invited to join in 2006 but declined. Although he mostly agreed with the direction of the group, there were two issues. Especially after the Eolas lawsuit, he felt WHATWG needed to have a patent policy (something the W3C had always had, to make it clear if someone was suggesting using a technology their company had patented). Second, because of the thousands of enterprise customers who relied on IE working the way it did, changing the way errors were handled would cause too many problems.

By then, it was clear that XHTML wasn’t the future. WWW creator Tim Berners-Lee said it was time to reinvent HTML rather than replace it and the Fifth HTML Working Group was set up in March 2007, with Chris Wilson as chair.

There was some disagreement as to whether the working group would co-operate with or try to replace WHATWG and WHATWG continued work. Google got involved, producing first the Google Gears plugin (authored by the team behind the powerful but insecure Greasemoneky scripting plugin for Firefox with features like giving a web site your location without asking, which led to Chris Wilson telling the Gears team the plugin would never ship as default in IE unless they added clear privacy protection) and then, in 2008, the Chrome browser.

Having parallel groups working on HTML led to the bizarre situation of WHATWG declaring HTML as a “living standard” that would always be evolving -- right after the W3C working group finalized much of HTML5. That’s complicated by the fact that HTML5 is actually a group of hundreds of different specifications, all at different stages of maturity. Simplistic test sites (including Ian Hickson’s famous ACID tests) can be misleading; the scores they give say more about what the test writers are interested in than about the formal state of the standards. Web development continues to be a thorny issue because web standards are always a moving target. And when it got back in the browser game, Microsoft took a different approach, because of all those existing sites based on how IE 6 did things -- and because of its focus on security.

As Mozilla kicked into high gear, the Windows and IE team were bogged down with another major initiative: Fixing security.

Starting with the vulnerability in Universal Plug and Play found soon after Windows XP shipped, and continuing through viruses and worms like Code Red, SQL Slammer, Blaster, and the rest, Windows was starting to look like a security punchbag. In February 2002 the Windows team downed tools and stopped coding for a few weeks while all 8,500 developers went through security training. 

Rescuing Windows users from the security nightmare also meant rescuing IE. As Windows XP SP2 expanded from the initial quick fix of shipping an update to enable the Windows firewall by default, into a year-long major rewrite by the core Windows team. Making IE more secure became a key part of SP2. At the end of SP2 Todd Wanke, who ran the SP2 effort, commented “we realize we have a lot of work to do to improve Internet Explorer, and we're just doing everything we can do ensure that we're securing that platform.”

That project turned into IE 7.

Part Three: Rehabilitation

A month before Windows XP SP2 shipped, the first post on the new IE blog appeared, written by then product unit manager Dean Hachamovitch. He’d been running sustained engineering for IE and had been pushing to break IE apart from Windows and improve the browser rather than concentrating on custom fixes for enterprise customers.

Microsoft

Then-Internet Explorer boss Dean Hachamovich at the launch event for IE9.

By October 2004 Hachamovitch was demonstrating prototypes of IE 7 to the Microsoft executive team, not long after Chris Wilson came back to IE after his years working on WPF. In February 2005 Bill Gates announced IE 7 at the RSA conference.

Announcing a new version of IE at a security conference was a clear message that although there were new features (like the search bar Firefox had adopted from Opera) and better CSS support, the first priority was improving browser security. As Hachamovitch put it at the time, the plan was to "go further to defend users from phishing as well as deceptive or malicious software. Why? Because we listened to customers, analysts, and business partners."

The message they heard? "We want security on top of the compatibility and extensibility IE gives us, and we want it on XP. Microsoft, show us your commitment.”

What they got in IE 7 was significant security improvements, from the first versions of the SmartScreen anti-phishing protection to colour-coding the address bar to show when you were on a secure site, to blocking Active X controls unless you specifically asked for them and running them in a separate process, to locking down browser setting and using protected mode in Windows Vista. That put the browser in a sandbox with fewer rights than a limited user account, so IE -- and any malicious web sites you visited -- couldn’t write files or registry keys anywhere important.

After a year, Microsoft even stopped checking to see that users had a genuine copy of Windows before letting them download IE 7, presumably believing that getting more people onto a more secure version of IE would protect paying customers better than leaving a pool of IE 6 on pirated systems. As IE’s Rob Franco joked at the time, "my goal with IE 7 is to protect the system against the most destructive force in the universe -- my brother, who believes that everything on the internet should be free and will click on anything to get it."

Microsoft

Bill Gates' Trustworthy Computing memo meant the emphasis for IE was security before new features.

The initial impetus for IE might have been the security problems Microsoft was facing, but Microsoft’s own telemetry told them just how much of their time people were now spending in the browser.

And by the time it shipped it was also obviously a response to Firefox. In fact Firefox vice president Johnathan Nightingale jokes that "IE 7 is one of the releases we’re most proud of" because "that release didn’t happen and didn’t happen the way it did without Firefox and without Microsoft realizing the game was afoot.”

He also gives Microsoft credit for joining in. "Of all things, IE is showing up in standards bodies. Microsoft wants to engage, to win hearts and minds among web developers. It’s really positive to see all browsers recognizing the value of that investment [in standards]."

Standards versus compatibility

Microsoft dropped the Mac version of IE at the end of 2005 to concentrate on Windows, and IE 7 launched in October 2006. It wasn’t a one-time fix either. The plan was to come out with a new browser with better security and slightly better standards support as soon as possible (it took about 18 months in the end) while working on much more support for standards for the next two versions of IE.

"In a sense we're doing a mea culpa, saying we waited too long for a browser release," Bill Gates said at the MIX 06 conference soon before IE 7 was released and Hachamovitch was even blunter. "For a lot of people, anything short of an apology, to them, just sounds defensive. So I want to be clear: We messed up. As committed as we are to the browser, we just messed up."

Having a more secure browser would be no use if developers didn’t build for it, and that’s been the uphill battle Microsoft has faced ever since it let IE 6 effectively fossilize. And there was a tension that was evident at the time that continues to dog IE today.

"We had a very simple goal; we wanted to make every day better for every developer," Hachamovitch said at MIX 06. The point of the MIX conferences was to put Microsoft "in the mix" as a possibility for web developers to consider  -- although it was still pushing IIS and WPF as much as HTML and Silverlight made its first appearance at the conference, demonstrated by Joe Belfiore (later the face of of Windows Phone). Microsoft was prepared to take its lumps from a frustrated developer community and the first MIX conference drew half its speakers from the HTML and open web community, but it still needed to strike a balance for developers, users and enterprises.

"Web developers are our customers," Chris Wilson added at MIX 06, "but there are balance points around that. Although we're committed to making [our standards support] better we have to balance that along with backwards compatibility and along with security. That's not an excuse not to improve, it's just a challenge."

The ongoing tension between standards and compatibility had roots in the browser war between IE and Netscape in the 1990s.

Navigator’s popularity at the time meant that other browsers would try to match its rendering of web pages, even when that didn’t match HTML standards (Spyglass developers had always found it frustrating and the IE team would sometimes refer to being "bug compatible"). Developers at Mozilla suggested having two rendering engines: One for Netscape-coded pages and one for more standards-based HTML. Microsoft picked up the suggestion in IE 5 for Mac as a way of dealing with the problem but instead created issues that have dogged it to this day.

"At least half of the quirks were Netscape quirks that IE built in to be backwards compatible," claims IE’s Aronchick. Jason Farnsworth, who worked on the Trident rendering engine for IE 6 agrees. "We were working on a codebase with intentionally broken layout capabilities (in order to match Netscape rendering bugs), trying our best to make something standards compliant and 'right' for the first time."

There are several reasons IE’s rendering tended to be different from other browsers, especially if developers took advantage of the unique Microsoft features in IE. IE 6’s notorious quirks mode was actually introduced to load pages that were built for IE 5.5, and it turned out to have a bug in it. Unless the document type was in the first line of code, it was never actually getting used, points out Chris Jackson, Microsoft’s compatibility specialist. In some companies he’s visited, 99% of their IE bugs were caused by that one DOCTYPE bug.

"In IE 6 we had two engines: One for quirks mode and a highly standards compliant mode. At the time it was so good that we were going to break everything so we kept the old one. Guess what people used? We gave the responsibility to folks who didn’t know about things like DOCTYPE."

In IE 7, quirks mode was the default. IE 8 had quirks mode as well, but also the IE 7 implementation of standards, as well as its own standards mode: “It was a binary switch that took you between three different settings,” Jackson jokes.

IE 9 had four different rendering modes and IE 10 added a new standards mode and a new quirks mode to meet the demands of businesses for compatibility and the demands of web developers for the new standards. "There are six different ways you could render a web page in IE," Jackson warns. "If you’re not aware of which one you’re rendering in, you’re leaving it up to chance and the default will be ten times slower than what the browser is capable of."

Put a page in quirks mode and not only do you get the 1999 implementation of standards but you get the old, slow JavaScript engine too. Indeed, many sites today detect IE and send it code written for older versions, not the modern markup that would actually work. No wonder there seems to be a mismatch between what the IE team promises and what some IE users see in their browser, leaving the IE team pleading with developers to give their browser the same markup as Firefox and Chrome.

When IE 8 came out in early 2009, it was clearly an attempt to balance those demands. It was faster and far more stable than IE 7 and it had handy tools like web slices and accelerators for grabbing updated content from web pages and using add-ons that were simpler and less insecure than ActiveX. It also had better support for some of the standards that made up HTML5 at the time, especially for CSS 2, and Microsoft changed the behaviour of the DOM to match other browsers. But it still had compatibility mode for developers who wanted the older IE behaviour. It wasn’t exactly the same and developers still had work to do, but it’s what a lot of enterprise developers jumped on to keep their old sites working -- and as XP is the last version of Windows that IE 8 works on, it’s what’s been keeping those companies on XP. 

For all the claims that enterprises have stuck on XP to get IE 8, Jackson notes drily that "the number of apps that have broken in the transition from IE 8 to IE 9 worldwide that I haven’t been able to fix with the built-in compatibility modes has been four." His pragmatic suggestion to anyone still dealing with the transition is not to wear yourself out testing everything "because most things are going to pop out the other side working. Take a look at the one that, if it fails, costs you a couple of million dollars and test that one."

The rise of WebKit 

Then in 2008, Apple launched the iPhone 3G with its mobile Safari browser, and Google came out with its own browser, Chrome. Both used the WebKit browser engine.

Web developers were keen to build sites designed to for WebKit and iPhone. The problem was they sometimes hardcoded in references to browser-specific implementation of unfinished standards (tagged with "browser prefixes") without always including the code for the standard itself. That meant even when IE supported a standard, it wouldn’t be able to run those pages correctly, which is why you started hearing the phrase "same markup" from Microsoft. If developers would only give IE 9 the same HTML, CSS and JavaScript code they gave other browsers, the IE team begged, IE 9 would be able to cope with it.

Hachamovitch said it so often, he began to joke about the "same markup drinking game." But the problem was bad enough that in early 2012 Daniel Glazman, co-chair of the W3C CSS working group, wrote an official call for action calling "WebKit the over-dominant browser on the mobile web," pleading with developers to stop making "works-only-in-WebKit" sites and calling for Apple and Google to offer their WebKit-only CSS properties to the W3C so they could be standards. Otherwise other browsers would have "no other option" than to use WebKit prefixes, even if they didn’t use the WebKit rendering engine. "turning a single implementation into a world-wide monopoly."

It would be IE 6 all over again, only worse. By IE 11, IE had indeed started telling web sites it was "like Gecko" in an effort to get that same markup.

Common standards, stable standards

In 2009 and 2010 the IE team starting getting ever more involved with web standards, from giving feedback on WHATWG’s HTML 5 draft specification to joining the SVG working group. Ironically although IE had never implemented SVG, Microsoft was partly responsible for its creation. When Microsoft got together with Macromedia, Visio, and Canon in 1998 to suggest a VML specification for vector graphics on the Web that overlapped with Adobe’s PGML plans, the W3C told all the companies to work together; those discussions became the basis of the original 2001 SVG specification and Microsoft worked with Adobe to create the original SVG browser plug-in.

It was clear that Microsoft was getting back in the game. "On August 7, 2009, [IE program manager] Adrian Bateman did what no man or woman had ever done before: he gave substantive feedback on the current editor's draft of HTML5 on behalf of Microsoft. His feedback was detailed and well-reasoned, and it spawned much discussion," Google’s Mark Pilgrim commented at the time. "After five years of virtual silence, nobody wants to miss the opportunity to engage with a representative of the world's still-dominant browser."

The plans for Internet Explorer 9 were far more ambitious than for IE 7 and 8 and Microsoft didn’t just want to catch up. Hachamovitch and Sinofsky went recruiting again and got some heavy hitters on the team. They’d already snapped up Jason Weber, one of Bill Gates's technical assistants (think less fetching coffee and more consulting on Microsoft company strategy) in 2008 to work on performance. Rob Mauceri (who briefly ran IE after Hachamovitch moved on to his current secret project) came to Microsoft when it bought Vermeer, creator of the HTML authoring tool that became FrontPage; he moved from the Office team to "re-invigorate" IE.

And Ted Johnson created the Windows version of the classic DTP tool, Aldus PageMaker, and then founded Visio.

With IE 9, even though it didn’t ship as part of Windows 7, Microsoft wanted to take advantage of Windows and the PC hardware it was running on. As then Windows chief Steven Sinofsky put it at the time, “the world for a time went down this path where the browser was a little program you just ran on top of the OS. It was this cool thing that didn’t care about the device hardware or the OS, it was agnostic to all that, and that can work for a period of time but underneath the hardware has been changing rapidly and eventually the hardware capabilities transcend that.”

If you want location or a screen that rotates as you turn a tablet or to take advantage of the GPU for performance, he pointed out, "browsers need to know what’s going on on the hardware to move forward; the whole way you architect and write a browser has to change." That didn’t just apply to IE -- "no browser vendor needs us to tell them that if you want to do SVG you’re going to need to use the GPU. We’re all going to do Just In Time compilation; if you want to do that you have to think about how to do threading and multiprocessing and the OS can help do those things well. We think using APIs in Windows is a good thing -- and we think that writing a browser that uses them is the only way to really do a great job on HTML 5."

That connection to the hardware was one reason IE 9 didn’t run on Windows XP -- it didn’t have a version of DirectX that would give you the hardware acceleration that IE uses for everything from zooming to rendering fonts to playing videos to drawing SVG. "It’s about running with the whole power of the PC," Hachamovitch said in 2010 and the message was the same when IE 11 came out in 2013; "with Windows 8.1 and IE 11, the browser is no longer a commodity -- it's a way to differentiate the device and the operating systems." Chrome might carry on support XP but it wasn’t worth doing, he claimed.

"Using compatibility layers to run cross-platform in non-native ways makes browser development easier; it doesn't always make a better browser or the best experience of the Web."

The other thing behind IE 9’s improved performance was the new Chakra JavaScript engine from Jason Weber’s team (one of the last things Chris Wilson was involved with before moving on to Google). Chakra doesn’t just run the JavaScript in a web page; it uses a separate core on multi-core processors (including on ARM systems like Surface and Windows Phone 8.1) to compile it in advance. IE 9 quickly caught up to the performance of Chrome and Firefox, at least on JavaScript tests (and slowdowns in other areas were often caused by ActiveX controls and plugins rather than the browser). But the issue of standards and tests wasn’t settled.

For IE 9, the team focused on commonly used standards, and standards that were stable enough to implement without worrying that they’d be out of date a month after the browser shipped: HTML 5 video, audio and canvas tags, some of CSS 3, ECMAScript5 including the strict subset of JavaScript, geolocation, the Web Open Font Format. In typically thorough Microsoft fashion, it scanned 7,000 web sites to find which web standards developers were actually using -- not just which showed up in popular tests.

So even as IE was improving its score on the Acid test, Hachamovitch wasn’t afraid to criticize it. "The Acid 3 test is a proxy that many people use for standards compliance. Acid has a hundred tests of features; some of which were under construction when it was written, some of which went back into construction afterwards. You can have a score of 100 on Acid and completely mess up these borders I’d want to use on my page… If I can score 100 and the same markup fails, maybe there's a problem in the test?"

Even in WebKit browsers, he pointed out, not every page looked the same. "There are great examples of where the same HTML markup does radically, painfully different things -- not just between IE and other browsers but between other browsers and even between different versions of Webkit." It wasn’t IE 6 versus the web. "We heard the talk about this IE 6 problem, and we’re calling out that there’s this problem with every browser. It’s not like there is this happy bubble world where everything interoperates and IE is over here."

In June 2010, neither IE nor Firefox could get a full score on the Acid 3 test because it looked for SVG Font support, even though it wasn’t widely used on the Web (and the SVG working group was about to make significant changes to the SVG spec). Ian Hickson was concerned about simply removing that test in case it looked like he was "trying to make it easy for Firefox" but in September 2011 he removed several "antiquated and unusual" sections of Acid 3 and IE joined the other browsers in getting a perfect score.

Microsoft was slow to adopt some standards: IE didn’t add WebGL support until IE 11 -- by which time the WebGL standard had changed to fix the security issues Microsoft was concerned with. Microsoft had also added WebGL checking to the SmartScreen phishing and malware scanner that was now blocking almost all malicious URLs and malware in tests, and the new version of DirectX could back off instead of crashing if some malicious WebGL tried to overwhelm the GPU.

Similarly, it waited out the Webworkers spec until it stopped changing -- and breaking sites built on it. Firefox and Opera had WebSocket support long before IE 10 added it, but they had to remove it in 2010 because of a security flaw. And it was IE 11 before Microsoft’s adopted Google’s SPDY protocol (once the HTTP working group had started incorporating it into HTTP 2).

For other standards, Microsoft started work on while they were still controversial. In addition to supporting third-party tracking protection lists, IE 9 was also the first browser to turn on the still-undefined Do Not Track header. And the media extensions for streaming protected video content it supported in IE 11 had generated furious debate inside the W3C.

"There are three parts," Hachamovitch explained at the time. "There is the web crypto, so that Netflix can go 'I want to make sure you really are generating a key for me so that we can do the handshake.' No one seems to mind the web crypto one, no one seems to mind the web streaming one. And the last one has a lot more to do with somebody's business reality. I don’t know if I believe in rights management philosophically; I know Netflix has contractual agreements and I have a choice. I can enable it in the browser or I can condemn everyone to have to go get an app, or a plugin."

Microsoft also started proposing its own standards. It offered the W3C the Tracking Protection List specification. The Navigation Timing spec from IE 9 was quickly adopted by other browsers, but despite encouraging comments they’ve been slower to pick up Microsoft’s Pointer Events suggestion for handling touch, mouse, pen and other ways of interacting with a device (which works differently from the touch support Apple created for WebKit).

When Windows 8 tablets came along, Microsoft started comparing IE 11 not just to desktop browsers but to Safari on the iPad or Chrome on Android tablets; from showing multiple tabs and windows to letting you use hover menus and drag and drop with touch, syncing tabs to other devices, prefetching pages while you’re reading the first one, cutting out ads with the new reading view and saving battery life by using the GPU, especially for video playback.

Even though surveys show that most people still use a PC to browse as well, as mobile browsing gets more popular it’s becoming the new battleground.

You can see how well IE keeping up from the new list of technologies and standards Microsoft is considering for the next version of IE, at status.modern.ie, and which it is already working on -- like the Gamepad API and more WebGL support. There are some notable omissions, though, especially WebRTC -- Google’s proposal for real-time communications in the browser. It’s easy to see Microsoft’s reluctance to adopt WebRTC as protecting its income from Skype and Lync, although Microsoft says it’s about technical issues (views some developers share). Microsoft has suggested its own proposal to the W3C, ORTC; this will be compatible with WebRTC -- and Google is also involved with it.

In 2012 Microsoft’s Rey Bango defined what Microsoft counts as a "stable" standard. "When there have been no recent additions or changes and no major changes or renaming is expected. Is it in at least two other browsers? Is it a candidate recommendation?" 

The simple fact is that handling new standards is going to remain a tension for IE. This is not just because it comes out far less often than other browsers -- in fact, IE 11 has been getting significant updates to its WebGL support through Windows Update without needing a new release.

The issue is that because it wants to support all those thousands of enterprises who run their business on sites they’ve built in IE, Microsoft is prone to be more conservative about developing standards.

The future is cloudy

By October 2010, IE’s market share had dipped below 50% for the first time, and over the next 18 months Chrome and IE battled it out for first place, depending on whose stats you look at and how they count the pages Chrome fetches speculatively. IE 10 began to reverse the decline though and Roger Capriotti (who joined the IE team just before IE 9 was announced) claims "over the last twelve months there’s been a resurgence from the IE perspective. We hit a high point in November at 58.36%, in February we were still over 58%. We’re basically looking at the highest share we have seen in almost two years and over the last 12 months we’ve picked up over five points of share worldwide while Chrome and Firefox have lost that amount of market share."

To show off IE, he started working with developers like the folks behind Cut The Loop and Contre Jour to build sites that used IE features. "Two years ago we were looking for partners; now I turn partners away. I’ve got more people knocking on my door than I can handle."

The IE team also reached out to web developers with tools, with teardowns of how they built those experiences and with self-mocking campaigns like The Browser You Love To Hate -- "a certain set of folks were either upset with us or had forgotten about us," Capriotti says -- and a Tumblr about comebacks. "People started to say to us 'maybe it’s time to stop picking on yourself; you have a modern browser with these great experiences -- maybe it’s time to start thumping your chest a bit.'"

Competitors have started imitating IE, he says, especially in touch. "When Apple shipped iOS 7 on the iPad they added some swipe gestures in the browser. Google has continued to build more touch integration into Chrome. They recognise that’s what users want on these tablets." He says Google has also "taken a page from our playbook" building experiences and telling developers how they work.

IE is also moving a lot faster; IE 10 arrived 18 months after IE 9, IE 11 came along after just a year and the IE 11 update in just six months -- and Sam George is promising even faster delivery, although only once Microsoft works out how to explain that clearly, to developers and administrators.

"You can tell from the amount of development we put into 10 and 11 that we haven’t taken our foot off the gas pedal, Capriotti promises. “We’re building a modern browser to help the web. We’re going to continue working to make sure IE is the fastest performing browser out there ad and make sure it’s in line with other browses from a standards perspective and that it’s interoperable." 

IE has come a very long way, but Microsoft has to keep proving that IE 6 won’t happen again. That’s not helped by the way businesses that built internal tools on IE 6 moved as far as IE 8 and stopped there, which also trapped those businesses on Windows XP.

In the most recent update to IE 11, Microsoft seems to have accepted that some of those companies are never going to update those internal systems. To get them off IE 8 and XP, it’s added back several technologies from IE 8 (writing the code from scratch rather than just bolting it back in place for security reasons). 

But Microsoft has a hard balancing act to achieve in IE, satisfying both leading edge and conservative web developers, and trying to move at Web speed without losing stability. As Mozilla’s Nightingale points out, "part of the standards process is bringing your own proposals, and we’re thrilled to see {Microsoft do that]. But part of the process also building to the consensus even if it’s not your proposal."

On the other hand, he points out "any world where you've got Microsoft and Google trying to outdo each other in interoperability is a world I feel pretty good about."

In many ways, IE has come back to the promise of IE 3 (although without giving up on Windows). As Capriotti puts it. "there’s the concept of the modern web and that isn’t a concept that should be dictated by us or Mozilla or Google; it should come through the W3C."

Whether or not IE does everything you want, whether you use it or not, whether you’re tied to XP or only using iPads and Chromebooks, you should take IE seriously. Because this time around, Microsoft isn’t giving up on the browser.

(Next page: Thanks, credits, and related links.)

Thanks, credits, and resources

I've been following Internet Explorer since it first shipped and it's always been a fascinating story. Much of the information and many of the quotes in this piece are taken from conversations with current and former members of the IE, Windows and related teams over the years, especially Rey Bango, Scott Berkun, Roger Capriotti, Patrick Dengler, Sylvain Galineau, Ryan Gavin, Sam George, Jeb Haber, Dean Hachamovitch, Chris Jackson, Ted Johnson, Kris Krueger, Eric Lawrence, Rob Mauceri, Tim O'Brien, Jean Paoli, Tony Ross, John Shewchuk, Brad Silverberg, Steven Sinofsky, Jason Upton, Jason Weber and Chris Wilson. I'd like to thank them and other team members for their time, especially when digging into ancient history. I also had valuable conversations with numerous web developers, browser developers, evangelists, software developers and others in the industry, especially Larry Smarr and Firefox vice president Johnathan Nightingale.

Some of the details come from conference sessions and keynotes, blogs, IRC logs, articles and internal Microsoft emails released as part of the DoJ case. This is a useful (but far from exhaustive) list of references:

 J Allard's memo: Opportunities for Microsoft on the Internet (RTF)

http://www.microsoft.com/.../timeline/docs/di_killerapp_InternetMemo.rtf

Microsoft Says Internet Browser Idea Arose Long Before Netscape http://www.microsoft.com/presspass/ofnote/nyt806.mspx

The untold story of how the Internet forced Bill Gates to reverse course Part 1 http://www.businessweek.com/1996/29/b34841.htm Part 2 http://www.businessweek.com/1996/29/b34842.htm

Bill Gates' Internet Tidal wave memo 1995 http://www.lettersofnote.com/2011/07/internet-tidal-wave.html

Mozilla stomps IE's mascot http://home.snafu.de/tilman/mozilla/stomps.html

Memoirs from the Browser Wars http://www.ericsink.com/Browser_Wars.html

Early members of the IE team weigh in on the question of IE 6 http://www.quora.com/Internet-Explorer/How-did-Internet-Explorer-up-until-version-9-get-to-be-so-bad-relative-to-Chrome-Safari-and-Firefox

The Uncivil War inside Microsoft http://www.businessweek.com/stories/2001-08-15/the-uncivil-war-inside-microsoft

Breaking Windows by David Banks http://breakingwindows.net/1prologue.htm

W3C HTML timeline 1997-2008

http://www.w3.org/html/wg/wiki/History

Tim Berners-Lee: Reinventing HTML http://dig.csail.mit.edu/breadcrumbs/node/166

The inside story of Windows XP SP 2 http://winsupersite.com/windows-xp/windows-xp-service-pack-2-inside-story  

Robert Scoble; the first mention of IE 7 http://radio-weblogs.com/0001011/2004/10/15.html#a8416  

Chris Wilson on IE 7, Ajax and Web standards https://channel9.msdn.com/Shows/Microsoft+Conversations+with+J/Jon-Udell-Chris-Wilson-on-IE7-Ajax-and-web-standards

Eric Law: Shims, Detours and other "magic" http://blogs.msdn.com/b/ieinternals/archive/2012/07/31/internet-explorer-compatibility-detours-shims-virtualization-for-toolbars-activex-bhos-and-other-native-extensions.aspx

Chris Wilson: You, me and the W3C (aka Reinventing HTML)

http://blogs.msdn.com/b/cwilso/archive/2007/01/10/you-me-and-the-w3c-aka-reinventing-html.aspx

WebGL considered harmful http://blogs.technet.com/b/srd/archive/2011/06/16/webgl-considered-harmful.aspx

Daniel Glazman: Call For Action: the open web needs you now http://www.glazman.org/weblog/dotclear/index.php?post/2012/02/09/CALL-FOR-ACTION:-THE-OPEN-WEB-NEEDS-YOU-NOW

Using CORS: WebGL security update http://hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/

Pointer Events spec http://www.w3.org/TR/pointerevents/

Object RTC http://ortc.org/

Internet Explorer Test Drive http://ie.microsoft.com/testdrive/