Tuesday, February 02, 2010

Developers should charge extra for Internet Explorer support

First of all, I'm not a web developer by trade. I work all day long with systems which will happily deliver content to any web browser. How that content looks on any given browser is not my problem. However, I do occasionally have to support the developers of that content, and I've learned an important lesson: Internet Explorer is a terrible browser. It's not just an ok browser, a mediocre browser, or even a bad browser. It's a terrible browser. I'm not going to get into the whys and hows of it. Suffice it to say that when developing complex, rich web experiences, it takes significant extra effort to support Internet Explorer and its various idiosyncrasies.

It's not just IE6. Everyone knows that IE6 has nearly no proper CSS support and a pitiful Javascript engine. Thankfully, IE6 is very rapidly losing market share. Not long ago, one in four individuals on the Internet was using IE6. Today, some statistics services put that number at about one in ten. There's still a lot of them out there, but thankfully there is a downward trend.

IE7 and IE8 are also problematic for developers. I'm working with a client right now who is suffering because IE8 has a habit of aggressively cacheing AJAX, which is raking havoc on his application which just underwent a major shift in its directory structure. On every browser except IE, the redirections we put in place at the server level were picked up and the application continued working normally. But this developer is now jumping through hoops and working very hard to figure out how to get IE8 to pick up the new directory structure and work as well as the rest of the browsers. Regrettably, as a non-developer, I can only sit back and watch and toss out the occasional "have you tried this", or "is it possible to do that" remark. Two heads are better than one even when the second is only worth half of the first.

So now I get to the real point of my post. Why are we even still developing for IE? It's as plain as day to me that Microsoft has no real interest in producing a top notch browser. They've had 15 years since the release of IE 1.0 to figure it out. The one complaint that I have heard from developers which has lasted the entire 15 years is that Microsoft would rather invent standards than follow them. And since Internet Explorer won the first browser war when IE4 replaced Netscape Navigator as the dominant browser in 1998, the standard response to those developer complaints has been that the dominant player gets to set the rules. If IE is the dominant browser, then it IS the standard. The rest of the browsers must become compatible with sites that support IE, not the other way around.

But we're in a new browser war now. And this time, IE is not winning. For the first time in 12 years, the Internet Explorer family of browsers has less than 50% of the market share, and it's trending steadily downward. What this means is that while one in every two visitors to most websites is using Internet Explorer, the other visitor is using something else. One in three visitors is using Firefox, and roughly one in ten is using Safari, Chrome, or Opera. All four of these "other" browsers support open web standards. IE7 and IE8 claim to, but still haven't fully adopted them, and still try to set their own. Generally speaking, if you develop a web application with adherence to the standards, you can expect Firefox, Safari, Chrome, and Opera to work well. You cannot expect the same of Internet Explorer. Some tweaking will be involved in making sure IE works like the rest.

I think that developers have more control over the browser war than they give themselves credit for. Developers create the applications, and must choose between developing for Internet Explorer and then making sure the other browsers work, or developing for the standards and then making sure Internet Explorer works. When Internet Explorer was the dominant browser, the decision was easy. Now that there are more users on standards compliant browsers than on IE I've noticed a growing trend of developing to the standards and tweaking for IE. I think that trend will only accelerate, as Microsoft starts to realize that it must adapt in order to survive.

Developers can further accelerate the trend by making it hard for businesses to fight back. Freelancers will have an easier time of it, but small "professional services" shops will also be able to contribute. By simply charging more for "IE support", developers can push businesses into publishing standards based sites. This will have a snowball effect on the browser war. First, more and more sites will become standards compliant, with no special efforts being made to support IE. IE6 will be the first browser to suffer. It's already on the the way out, but as more sites drop support, it will go away much faster. IE7 and IE8 have better standards support. They will last awhile longer, but neither can compete with Firefox, Safari, Chrome, or Opera on performance and stability with standards compliant sites. IE is already steadily losing market share, but if developers stop propping it up with compatibility tweaks, users will abandon it in droves. The faster users abandon IE, the faster it will lose market share. As IE loses market share, fewer applications will be developed with IE compatibility tweaks. And thus begins the end. Microsoft will have two options: drop IE altogether, or start fully supporting the same standards as the rest of the industry.

So developers, go ahead and raise your prices. Get the message out that IE support comes at a premium. Start making a difference and help the world win the browser war.