Reflections on Internet Explorer
I ‘witnessed’ the birth and death of Internet Explorer. It once played an important role in starting real web test automation.
On 2022–06–15, Internet Explorer died at the age of 27. I started web browsing using Netscape, and I have experienced the whole lifespan of IE. I have some reflections on this special date.
IE’s OLE made real Web Test Automation Possible
Before 2005, there was no real test automation for websites. Pioneer automated testers did this via simulation, using the HTMLUnit library. Internet Explorer, like Microsoft Office apps, has a built-in OLE interface, which can be used to drive the app (I have written code to drive Outlook and Excel before). Watir (stands for Web Application Testing in Ruby) started real test automation by simply connecting the wonderful Ruby Script with IE’s OLE.
Between 1995 and 2011, I successfully implemented web test automation in a few projects, using Watir. Since 2011, I have been using raw Selenium WebDriver.
Background of IE’s success and failure?
Firstly, a quick history of Microsoft browsers.
IE1 — IE5 (1995–1999)
IE4 (1997)
bundled with Windows OS, achieved a 60% market share.
This is the first IE version I used, like many people at that time.IE5 (1999)
IE6 (released in August 2001)
- most widely used web browser, with ~95% usage share in 2003IE7 (2006)
“After five years, Microsoft finally updated Internet Explorer to compete with Mozilla’s Firefox, which had been growing rapidly.” [StateTech]IE8— IE11 (released 2009–2013)
Edge Legacy (2018)
Edge Chromium (2021)
The browser was not in Microsoft’s best interests
It might sound silly now because web browsing is essential to people’s daily life. But back in the 90s, Microsoft’s dominating position in Operating Systems made Bill Gates the world’s richest person for over a decade. Technically, almost all software developers need to learn Win32 API.
Let me illustrate this with an example. If you want to find the exchange rate of USA-JPY, a simple google search will do. However, in the 1980s, people could get the answer via two methods:
a Financial Newspaper ( or visiting a bank branch)
- this non-digital way, irrelevant in our contexta specific currency exchange Win32 application on a computer
Can you see that? The web provides an alternative to the Windows platform. So, Bill Gates had ignored web browsers for a few years (when Netscape dominated the browser market). Later, Bill Gates accepted his staff’s criticism and he pulled large resources to work on its first browser: Internet Explorer.
Only in recent years, Microsoft really started letting go of its OS-centric view. Azure, Microsoft's fast-growing cloud computing service, offers Linux distributions.
Not only that, Microsoft Windows OS now includes Linux, Windows Subsystem for Linux (WSL).
Microsoft’s failed attempt to define its own Web Standard
Internet Explorer did not compliant with the W3C standard. There were also various extensions, for example, running native Win32 apps in IE. Software Testers might remember HP’s Quality Center (formerly Mercury Interactive’s Test Director, now a part of Micro Focus’ ALM) only runs IE on Windows.
“QC client is a microsoft technology. It cannot be run without IE installed on a system.” — Micro Focus’ web site (a discussion)
It seemed Microsoft was going to win the Web (IE had ~90% browser market share) 20 years ago, which would be a disaster if so. Luckily, it did not happen, thanks to the emerging Mozilla Firefox, a fast browser that conforms to the W3C standard.
For a decade or so, poor web developers had to code the web page on Firefox first, then patch it so that it is presentable on IE.
C# History: Microsoft attempted the same trick on Java
Many C# programmers don’t know why and how C# was created. There was J++, and I have actually used it briefly. Below is from Wikipedia:
“While J++ conformed to the Java language specification, Microsoft did not implement certain features of the official Sun Java implementation in its Visual J++ product line.
In addition, J++ implemented other extensions that were not part of Sun’s Java implementation.
The implementation, MSJVM, did not pass Sun’s compliance tests leading to a lawsuit from Sun.”
Clearly, Microsoft tried taking Java from Sun, by gradually moving it to its ‘own version of Java’. Oh well, the attempt failed (after losing the lawsuit). Therefore, Microsoft released .NET and C#.
Why Microsoft Couldn’t Implement a good Web browser?
As a software developer, I couldn’t help thinking: Why Microsoft Couldn’t Implement a good Web browser? The IE → Edge Legacy → Edge Chromium is really a big embarrassment for Microsoft.
By the book, the Microsoft browser team had ticks for all the factors for success:
There is a strong desire, for high priority
Money is no problem, almost unlimited.
There is plenty of time, in fact, over 20 years.
Good quality software engineers
They have done it once (IE6) earlier
The best marketing/distribution channel, via its OS.
Yet, it failed.
In my opinion, the reasons are:
Microsoft’s attempt to hijack a web standard hurt itself badly.
For every extra extension or implementation deviating from the standard, it was highly possible that a rush and unthoughtful decision was made. Later, the tech debt will be paid eventually, with big interest.Supporting those non-standard extensions
While it has the benefits of vendor locking (such as Quality Center only works on IE), it also comes with support costs. The team needs to test every software update, at least for well-known extensions. As you can see, the ever-growing verification process slows down development. Up to a certain point (unable to support certain custom features), Microsoft had to change the browser’s name: IE → Edge.A wrong view of static API
Microsoft benefited a lot from its relatively static OS. Win32 API changed little for over two decades. However, the web has evolved, from HTML → HTML5, CSS1 → CSS3. Implementation of some of the new features might conflict with the non-standard way it was introduced earlier.Low Morale developers
Before Google, Mozilla and Opera created better browsers than IE. Surely, those two companies’ resources were far behind Microsoft.
I created award-finalist TestWise (Testing IDE) and award-winning BuildWise (CT Server), in my spare time. One main reason is that I did it with passion.
I used to check the CSS3 rendering score, a test harness that scores a web browser’s W3C standard compliance, when a new IE or Firefox version came out. IE’s score was consistently lower, by a fair margin. It seemed to me that Microsoft cared little about the standard compliance.
My Reflections on Internet Explorer
The contribution of real Test Automation
Microsoft’s OLE (acronym for Object Linking and Embedding) Automation was not designed for automated testing. However, Watir made it so. Because of that, later we have Selenium WebDriver.Conform the standard
In the context of web technologies, W3C is the authority. From my own experience in web test automation, it is really beneficial for me to stay with the WebDriver standard.
After I discovered WinAppDriver and used it for automating my desktop apps (Appium + WinAppDriver), the test script syntax is quite similar to Selenium-WebDriver, both are based on WebDriver standard.“Don’t be evil”
We all know “Don’t be evil” was in Google’s code of conduct. Certainly, the “Don’t be evil” motto helped Google grow to be one of the most successful companies in the world. (Google search engine didn’t show ads on results in its early version, which was a common practice).
Now if Microsoft’s Executives looked back, they probably would regret it. If they had implemented Internet Explorer based on the W3C standard, like Firefox, IE would still dominate the browser market (Firefox lacks marketing and budget. By the same virtue, Safari lost to Chrome. But Microsoft has more marketing advantages over Google). Chrome is great, but IE (not Edge) at least should be a serious competitor. The fact is that almost everyone needs to use IE first (usually to download another browser). If IE is good, then the majority of people won’t bother using another browser. At least for web browsers, Microsoft does NOT need to be evil.
The development of standard-compliant browsers (such as Safari, Firefox and Chrome) showed: creativity and quality. I believe Microsoft Engineers could accomplish that (technically) too if they were under a visionary lead.
For small companies, it is not easy to “Don’t be evil”. My TestWise was demonstrated at Agile 2009 conference, since then, I received several commercial interests. The common request is to “support proprietary syntax” (in return, I would get funding), I declined. TestWise has been always supporting only open-source automation frameworks.
I have incorporated the above reflections into how I develop software and provide test automation coaching. I insist on using the WebDriver standard for test automation.
Related reading: