Microsoft Internet Explorer 8 – From Beta Zero Day Attack to RC
Wednesday, March 4, 2009
I installed Windows Internet Explorer 8 Beta 1 within a few days of its initial release. I was never too thrilled with IE7, but it was a just a browser, and it essentially did what a browser is supposed to do. As a Web developer (not an ace full time developer, more in the intermediate range), I decided to see for myself what Microsoft was up to.
Installation wasn’t unusual, the standard relatively slow and more tedious than average confirmations, agreements, Next, etc. followed by the dependable reboot – just one as I recall.
I declined many of the new features such as Search Suggestions, Suggested Sites, Accelerators, Web Slices, Caret Browsing after reading their brief descriptions and noting them as either 1. try it out later 2. defer the option indefinitely or 3. (default) not likely to ever be tried or used, at least in my case. The install offered a choice of default search engine: MSN or Yahoo. My home page was changed as well, both oblivious to my existing IE7 settings. I proceeded cleaning up and resizing the Menu/Toolbar(s)/Views to set my browser viewing height close to it was prior to the install, and attempted to reset the new default 125% zoom to 100%. Starting IE8 would randomly demonstrate the new Automatic Crash Recovery feature simply by displaying the default home page, Google. While working in other software with IE in the background, it would crash/recover or spike at 100% CPU utilization (corrected by ctl-alt-del/End Task, kill from the command line, or a reboot). Crashes/100% CPU usage seemed to occur whenever a ShamWow! commercial started. Javascript performance seemed significantly slower. Nearly every Web page wasn’t rendering properly.
I switched to IE7 emulation mode, and the overall stability improved greatly, but problems still occurred – some new ones but not all, in the same random (or perhaps “reliably random”) manner. Although appearance isn’t a major issue, on XP it ranked somewhere between Lynx and Safari – on Vista/Windows 7, it looks as good or better than competing browsers. The developer tools looked initially promising, but had their own set of problems. In comparison, the IE developer tools are behind add ons for Firefox, Safari WebInspect and others by a considerable margin. Microsoft may have to commit fairly substantial resources and man hours/years to catch up.
I thought over the initial results, and assumed the usual – it’s Beta software, and probably many of the initial higher profile issues will be resolved relatively soon, some within days. On the other hand, I absolutely could not risk using it and expect to keep productivity at an acceptable level. If I spent time working on tuning it I may have gotten it to settle down, but the hours could add up to days, and then days * x. I was just overwhelmed by how flat out hands down bad it was. I decided to use Firefox, try IE8 after more updates came out from time to time, and see how things progress.
After updates were released and especially after Beta 2, IE8 improved by a long stretch. However, Javascript was still slow, and turning on the Display Script Error option resulted in a constant stream of alerts. Developer tools also required the ctl-alt-del/End Task, kill from the command line, reboot procedure, but not too often. Many sites that initially were scrambled by IE8 mode (or not using compatibility mode) looked fine, or at least improved. However, rendering problems were still a major issue for a majority of sites. Sites with frames appeared to be mangled by default. I was developing a site, and tested the index page in IE8. First pass, about half of the page Images and Text appeared. A refresh rearranged things, but then some text disappeared, and some images showed up. The initial code was developed by another programmer, and I had just finished reworking it as HTML 4.01 Strict, validating it in Dreamweaver. I validated the page again, this time through W3C, changed IE to compatibility mode.
Same results. Firefox and Safari rendered the page with no problem, and in less time than IE took to render and show half of the content.
Then events went really downhill.
I tried reinstalling IE7, which immediately said no, you have a newer version. I uninstalled IE8, and the IE7 install said no, again, same reason. I killed more time than I want to remember, and finally found Microsoft documentation for uninstalling IE8 and reinstalling IE7. I followed the procedures down to every last detail, and in the process won Triple Gold Medals in the Reboot competition. I started up IE7, and it was (in technical terms), hosed up far beyond any possible hope. It was actually IE7 running with Registry Entries left behind by IE8, which produced a witless brain dead version of IE7.
I reinstalled IE8.
I read a few weeks or so later that the IE8 Release was coming in about a month. This was in an RSS feed, and the word Candidate was not in the headline after Release, as in “Release Candidate”. Regardless, I was thinking either they had made a lot of progress over the past weeks and I missed it, or there just might be a lot of problems ahead. Or it might not be a real huge crisis, with a hopefully small percentage of exceptions. Then Microsoft posted the notice of the upcoming RC, with a request for final complaints/requests/bug reports. It’s official now.
On the scheduled date, my XP machine received some updates including IE8 RC1, I installed them and then of course, Reboot®. I logged on and once again, it went from real bad to even worse. The Explorer process was at 100% CPU and not moving. Reboot. Same thing. I killed the Explorer process and XP recovered, but of course that bar thing at the bottom of the screen that says “Start” in the lower left corner was missing. I looked it up on Google (using Firefox, of course) and all references mentioned “virus”. I ignored “the virus boogeyman did it” theory, opened a cmd, and brute forced some command line tactics. Reboot. It worked.
However, Internet Explorer RC1 was MIA. Starting IE8 RC1 made a very slight screen flash for about a millisecond, that’s it. I downloaded RC1, installed, rebooted. Same results.
I immediately declared unilateral unconditional surrender.
There are probably valid explanations and reasons for some of the problems I encountered with the IE8 Beta. I admit I have a very complex XP machine, with hundreds of programs installed. Perhaps installing Beta 1 software in that environment is inappropriate. Maybe there are some features/options I overlooked or something I blatantly did or failed to do that caused problems. All I can say with certainty is that what I’ve documented above is how events unfolded in my experience.
Unfortunately, there’s more to the story. According to this blog and others, the list of sites that are “incompatible” with Internet Explorer 8 RC1 is (so far) about 2,400 “major” sites. Based on my experience with IE8, this wasn’t any epiphany. There may be hundreds of thousands of sites in the www garbage heap that fail to meet any W3C standards.
I ran a few of the examples listed in the blog through the W3C validator, and they passed with no errors. A few others did have errors, the most common was improper URL encoding (“&” instead of “&”, etc.). Of course I didn’t submit every page that could be crawled on each site. However if you have large amounts of cash available, feel free to make me an offer and I’ll get to work on that as soon as you say go. Can I say with reasonable certainty that W3C validated code will render properly in IE8 RC1? I’m afraid not, and I would honestly have to issue the same disclaimer for any browser. My standard procedure has been 1. W3C validate 2. Open the browser(s) and validate again. Unfortunately, it appears that it will stay that way indefinitely.
Microsoft, given its past history of developing IE specific browser extensions and sites that can only be viewed with IE, seems about the least likely candidate to lead a crusade for strict browser standards. If I predicted this would happen about two years ago in a forum or mailing list, I would anticipate being torn apart from every direction with an astounding number and variety of insults. Are they going to drop any IE specific browser extensions to become more standards compliant? Not that I know of. There are some syntax changes though. Any new IE specific code? Here’s #1: <meta http-equiv=”X-UA-Compatible” content=”IE=EmulateIE7″/> . If I was presented with alternative plans for IE8 design, development, testing and release, and the entire Compatibility/Incompatibility/Site List Download Fix/Report a Webpage Problem addon/Meta Tag Duct Tape Patch/Roll it out and See What Happens scheme was the best choice, I’d propose that all involved should just go back and think about it for a real long time.
Microsoft could have hired (just to throw out a number) 1,000 temp workers back in June/July 2008 and paid them $20/hour to look at a long list of web sites in IE7 and IE8, and use those fine Microsoft products like Outlook, Messenger, etc. to send feedback to the programming staff. For example: “site www.gmail.com looks all screwed up”. But once again, we’re doing it for free, or an employer ends up paying someone to do it. Free labor is a valuable asset, if it’s legal and you can get the scam to work. In this case, it may end up simply getting consumers really pissed off, with Firefox, Safari and the rest more than happy to provide an alternative.
To wrap all of this up, here’s a quote from the W3C HTML 5 Working Draft:
“Furthermore, while writing applications that target vendor-specific platforms necessarily introduces a cost that application developers and their customers or users will face if they are forced to switch (or desire to switch) to another vendor’s platform, using an openly-produced and vendor neutral language means that application authors can switch vendors with little to no cost.”
For Web Developers, vendor-specific means that their 1,000 lines of Javascript really ends up being a few thousand lines longer after they add all of the usual necessary if (ua == “Mozilla x”), if (ua ==”IE6”), if (ua=”IE7”) code. Then massage CSS and various HTML tag options. I’d really like to hear what percentage of development time is wasted on this crap from some large scale Web development companies, then apply the standard accounting principles – average yearly salary, overhead, benefits, capital, and opportunity cost. Using economic metrics like Value Engineering, Dollars/Product Value and Business Model Performance, the Cost/Value ratio probably ranks somewhere between burning money and playing slot machines.