Thursday, April 13, 2000

Closed due to browser incompatibility...?

Since I started working here at NAU I've had the opportunity to dive into a lot of Web technologies. Dynamic HTML, JavaScript, Java, C++, general object-oriented programming principles, CGI scripting with Perl...

It's pretty fascinating, and challenging at times. One particular challenge that's making news is the matter of crossbrowser compatibility. You're browsing this site with [ancient browser sniffer code deleted] I know this because this page sniffed your browser when it loaded, a piece of code I wrote. Visit this page with other browsers if you don't believe me.

This type of code is becoming increasingly necessary because the companies that author browsers keep "innovating" things which aren't W3C standards. (The World Wide Web Consortium encourages this by taking forever to determine standards: their team on downloadable fonts hasn't put a new paper on their site on the subject since 1996) Netscape pushed through their own version of layers which virtually no other browser supports. Microsoft duplicated Netscape's misnamed JavaScript, but rewrote the object structure of a document and the properties which refer to and control it in several incompatible ways.

The end results of that gap are as follows:

Web designers write code that sniffs the browser and follows a different codepath. More sophisticated designers end up rewriting their own version of the basic functions that compartmentalizes the differing codes and returns the same result. While elegant in its execution, it represents a tremendous waste of salaried time, and time in development. I spent an entire day debugging one such function to ensure compatibility across three browsers, and I expect to see similar roadblocks in the near future.

The EC loses its patience and announces that like HTML, there will be an international standard for JavaScript called ECMAscript, effectively taking the football away from Netscape.

Web designers are faced with the unpleasant choice of implementing proprietary technologies like Microsoft's data binding (which allows the browser, when pointed at a plain ASCII delimited data file, to display it in a formatted table), moving heaven and earth to translate them when possible, or to essentially pretend they don't exist and never use them. Since IE4, Explorer has had an impressive array of visual transition effects, almost none of which I've seen in practice and some of which are duplicated by bandwidth and memory-hogging Java applets.

I think it's great that someone like myself with a dual background in art and programming can feel both halves of the brain humming on the job. But with the increasing gulfs between browsers and lack of support for the standards the W3C can come up with in a human's lifetime, the emphasis has changed from "Look what I can do!" to "Look what I had to do to get it to work."

Some people believe that the browser "wars" are over and Microsoft's model is the de facto standard, and whether it's good or not it's the world we live in and we better get used to it. These are the same people who scrapped six thousand dollars of investment in Macintosh graphic workstations in a previous job of mine because they read something in the Wall Street Journal saying that Apple was circling the drain. Four years later, Apple is still around, at the forefront of technologies like USB and FireWire and showing no signs of slowing down. Did those selfsame people foresee Microsoft's losing struggle with the DOJ, the decline in their stock, and one of the least charismatic CEOs in America making a personal appearance on TV to put a PR spin on those events?

Just to make it clear I'm not gloating, I despised the iMac when it came out and thought it would be the final nail in Apple's coffin during a bad year, an innovation which would be remembered as "Jobs' folly." You see the extent of my oracular powers there.

Basing tactical decisions on longterm predictions of a product's viability is ill-conceived and generally smacks of self-justification for premade decisions. The mindset divides neatly along these lines: end users solely familiar with one product, and executive sheep whose collective memory chants the 1960s slogan "Nobody ever got fired for buying IBM." When was the last time you saw a new IBM-brand PC in the workplace?

I digress. The chief objection I have with Microsoft's contribution to the browser market is that they are not only incompatible with their competitors, and with the W3C, but with the release of IE5, incompatible with IE4, and to some extent with IE5 Macintosh (whose incompatibilities are based off a more correct implementation of those properties). Even assuming 4.0 browsers are a dim memory by the time you read this, the millions of sites based on them are still here.

Netscape's Mozilla project, as well as Opera, has chosen to focus on standards compliance, making the innovations in improving useability. Remember that the root of "innovate" is the Latin for "new." The Gecko web engine in Mozilla is potentially portable to handheld devices in much the same way WindowsCE was intended to entice developers to remain brand loyal. With the backing of America Online (and the implicit promise of bringing that technology to AOL's much-maligned browser), it's safe to say Mozilla won't have to worry about short-term returns on their long-term investment.

Which brings me back to web design. I work in academia, salaried regardless of the "market." My colleagues in the private sector are fiscally dependent on the viability of their code. Sites that stop working because of incompatibilities in a new browser (instead of the expected backwards compatibility) are sites that cost those designers' firms money, time and potentially their reputation. I leave it to you to guess their decision.