It's more than a house. It's an adventure.

Sunday, October 12, 2003

...And IE shall ruin the web

Some may argue that it already has, and I can't entirely disagree with them. IE (on Windows) has stagnated since version 5.5. The many "web designers" don't even seem to recognize that there are browsers other than IE. Many will choose convoluted routes to accomplish tasks. Lots of server-side code where simple CSS could do the trick. Lots of JavaScript where, again, a little CSS and you're done. And so on.

The poor standards compliance of IE, coupled with its "we're stuck in 2000 and this is the only way to do things" mentality is holding back the entire World Wide Web.

There. I said it. The only thing that IE has made easier for me is event-handling, letting me use window.event.srcElement to grab a reference to the DOM element that fired an event. But I can do that with standards-compliant code too (and will, at some point). Everything else on my current project has been made much more difficult by IE. I find myself coding to DOM-standard methods, then going back to my books to find the IE-blessed way of doing things. Places where CSS could let me take care of layout in a few seconds I have to code terribly clunky HTML (valid, but still clunky). When I started this project, I advised the project manager that things could be done much easier and cleaner in a browser other than IE but the corporate standard is IE, and getting support for anything else is a battle no one wants to fight.

Fortunately, developers are starting to call Microsoft out on this issue. MS is of course trying to cover their butts but the message is clear: if IE were up to date on standards-compliance, the WWW would be far better off. MS brushes this off with "we give our customers what they ask for" but who really is the customer - the person using the browser, or the person who offers his product/service through the browser? Or is it both?

Things will only get worse, or at best stay the same. Microsoft has already promised that no major changes will be made to IE until the release of their next operating system, Longhorn, in 2005 (and if you believe that release date, I have a bridge to sell you). So we're stuck with a choice: keep pushing our code & designs towards W3C standards, giving the people using modern browsers like Mozilla, Opera and Safari all the eye-candy and leaving IE users with a functioning site but that's about it, or holding ourselves back to what IE can handle. There's a third option but it's even uglier - code everything to do a browser sniff and then send the appropriate content & layout that way. I had hoped that by this time we could have evolved past that.

A great example of what IE is keeping us from doing: generated content. I've actually been eyeing this for a while and see huge value in it. Especially on intranets and other sites that serve up a lot of non-web content like Word documents, PDFs, etc. Rather than coding scripts on the server to check the filetype pointed to by a link, or hardcoding an icon into your HTML, let the browser work it out. Save yourself time & memory on the server, save your users download time, and of course take advantage of one of the most appealing benefits of CSS: one change and you've updated your whole site. But IE users can't see this, as it's not compliant with the level of CSS required.

Microsoft should not be in the browser business at all. And I'm not even referring to all the legal battles about whether IE is part of the OS or not. Microsoft, as an organzation, cannot keep pace with change on the WWW. It's too large, too slow, and most importantly, doesn't care (nor needs to). Changes only come about when they're required - to fix the many security problems that plague the browser. And there are plenty that have gone unpatched (note: the page has been taken down in light of a new, apparently large, patch, but the Google cache of the page still lists them, and a regular Google search will turn up plenty of other references). The whole product needs to be scrapped & rewritten from the ground up. That will likely not happen though, for the reasons I just stated. If Microsoft truly cares about its customers, it will quit building browsers altogether and leave the choice to the user.

Another example of Microsoft holding us back: XForms. This is a fairly "theoretical" example but it will become real soon enough. My current project deals a lot with creating DOM nodes on the fly, on the client, especially form elements with data to be sent back to the server for processing. We're working in VBScript running in ASP 3.0 on the server. XForms, when it is a full recommendation, will result in any compliant form sending data to the server in an XML format, as opposed to the name/value pairs used by today's browsers. Why, you may ask, is this important? In my application, data is collected in "groups" and those relationships must be maintained. Perfect for a heirarchical format such as XML - in fact, my server-side code talks to the back-end system in XML. IE sends the form elements to the server in the order they appear in the DOM - top to bottom, left to right. Which would be fine, as I know the position of all these elements, if not for one thing: ASP appears to re-order them. As a result, my formhandler is a nasty kludge.

To be fair, no browser I'm aware of supports XForms. After all, it's not even an W3C Recommendation yet. And clearly it will require some degree of server support as well. But it is in Bugzilla as a requested enhancement for Mozilla. So it's likely to get implemented at some point, and someone will churn out an example of how to work with what's sent back to the server (if nothing else, the implementation the Mozilla team uses to test it will get released to the public). Will we ever see it in IE? Not till 2005. And that's only if we're lucky.

My life would be far easier if all I had to worry about was coding to the standards. That saves me time. When something saves me time, it saves my clients money. Using CSS to do what has to be done in server-side script costs me server resources, which requires I buy a larger server, and that cost gets passed on to my clients too.

Update: I'm told by Jason that "Longhorn has been pushed back to 2006 for sure and maybe 2007. MS is not quoting any release dates for it any more, just that it will not be released in '05"


Post a Comment

Links to this post:

Create a Link

<< Home