Up, down, and out: 20 years of Internet Explorer

On IE’s 20th anniversary, the story of the web browser that had it all and lost its way.

1 2 3 4 5 Page 2
Page 2 of 5

There are other common issues, like setting the intranet zone wrong so that internal apps get the same restrictive security in new version of IE as random web pages, or the fact that you had to pay to upgrade the version of Oracle Forms that worked with Windows XP if you wanted it to function with Windows 7. But in some companies Jackson has visited, 99 percent of their IE bugs were caused by that one doctype bug.

“In IE6, 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,” Jackson says.

In IE7, quirks mode was the default. IE8 had quirks mode as well. In fact, it had two: both the IE7 implementation and its own. “It was a binary switch that took you between three different settings,” Jackson jokes: IE7 quirks mode, IE8 quirks mode, and the standards-compliant mode. IE9 had four rendering modes, and IE10 added both 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.

As a result of this hack approach, “There are six different ways you could render a web page in IE,” Jackson notes. “If you’re not aware of which one you’re rendering in, you’re leaving it up to chance, and the default will be 10 times slower than what the browser is capable.”

Put a page in quirks mode and not only do you get the 1999 implementation of standards, you get the old, slow JavaScript engine too. And any site that detects IE will 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 promised with every new release and what some IE users saw in their browser. That left the IE team pleading with developers to give their browser the same markup as Firefox and Chrome.

For all the claims that enterprises were stuck on Windows XP to get IE8, Jackson notes drily that “the number of apps that have broken in the transition from IE8 to IE9 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 the one that, if it fails, costs you a couple of million dollars and test that one.”

From Netscape to .NET, and the Longhorn lag

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 because it came with Windows, in 2002 and 2003 IE peaked with 95 percent 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, along 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 (though the online service had a contract with Microsoft to bundle IE with its dial-up client, sparking a lawsuit that wasn’t resolved until 2003). But Microsoft had won a Pyrrhic victory in the browser wars.

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

But there was also the fact that 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 settle on a strict and definitive way of building pages, one 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 HTML4 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 backward compatibility with browsers designed for earlier versions of HTML,” and the “W3C has no intention to extend HTML4.”

Arguments about the direction started almost immediately and continued over such fundamentals as how hyperlinks work, but the working group carried on with the new XHTML standards, warning again in 2002 that it was not interested in HTML4.

With the future of HTML mired in committee, Microsoft looked elsewhere for powerful development platforms. Like the W3C, Microsoft 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, “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.”

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 e-commerce systems, but they didn’t replace the browser.

Nor did .NET create the new OS the Windows team were dreaming of. Longhorn was an ambitious project, an OS written in C# and .NET that included communication and presentation technologies designed to be more powerful than what you could then do on the web.

The whole OS never shipped, but it spawned competition for the browser in the shape of managed code that would run on the (less ambitious) Windows Vista or in the browser—thanks to the Silverlight plug-in, which the team originally called WPF/E. Depending on your viewpoint, that stood for “Windows Presentation Foundation Express” or “Windows Presentation Foundation Everywhere.” Regardless, WPF/E would run on Windows (desktop and server), Mac OS, Linux, on phones (Microsoft’s own Windows Mobile and Nokia’s Symbian), and on embedded devices (Windows CE still powers everything from sewing machines to meat slicers in slaughterhouses).

Although (as usual) 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/E after IE6, including Chris Wilson, and that left fewer resources for IE. “To oversimplify,” as former IE head Dean Hachamovitch later put it, “they wanted to make developing powerful, secure applications and sites a lot easier.”

WPF/E started by looking at the drawbacks of Microsoft’s DHTML approach, recalls 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/E was intended to be “a unified platform for documents, user interface, and media, including 2D graphics, frame-synchronized audio, and video.” But although WPF/E code could 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 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-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.”

The battle was fought inside Microsoft as well, as Berkun points out (for more details, track down a copy of “Breaking Windows” by David Banks):

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.

To make that happen, the plan went far beyond the browser, including Internet Information Services in Windows Server and developer tools. In late 1996, the plan was for Visual Basic to create web apps using either ActiveX or Java (which Microsoft had licensed from Sun in December 1995, with IE pioneer Ben Slivka taking the lead). That never happened, and Microsoft’s next Java programming system, Visual J++, ran into problems when Sun objected to the Windows-specific class libraries Microsoft created to let developers take advantage of Windows features that meant your Java apps would only run on Windows)

Gates saw Java as a threat to Windows—and Windows, Bill shouted at Slivka at one notorious meeting in 1997, “is what this company is about.”

Internet Explorer loses the battle with Windows

After the release of IE4 in October 1997, IE moved into the Windows division, which Silverberg drily notes “did not share the same vision for the Internet and Microsoft playing a leading role; 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 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 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, going back to Gates’ 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 simply 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 only about beating other browsers—it was about beating the Internet Explorer team.

1 2 3 4 5 Page 2
Page 2 of 5