The Faust Track

Would you be willing to sell your soul for compatibility between Web browsers? Or would you sell your soul for a handful of very cool Windows-specific browser behaviors? Microsoft hopes that you will choose the later option. The company's 5.5 release of Internet Explorer includes a bevy of features at the expense of full compliance with long-approved Web standards. Whether or not you should enter into a Faustian deal with Internet Explorer depends primarily on your development goals.

Like Dr. Johannes Faust, many Web developers are looking for knowledge and power over their development lives. Writing code aimed at the lowest common denominator Web platform from four years ago has pushed many coders to reconsider their development morals. Enter the demon Microstopheles, disguised as a new release of Internet Explorer. "You don’t have to play ball," whispers Microstopheles. "Just listen to the deal I can make you."

The Deal

"You’re a former Windows developer, right? Who said you had to be stuck with a weak set of UI tools on the Web? I mean really, what kind of a UI can you really create with only an input box, select box, checkbox, radio button, and a push button? If you target IE 5.5, I’ll let you create your very own HTML elements."

IE 5.5 introduces element behaviors that let developers create their own binary and scripted components, complete with properties and methods. The scripted components are particularly cool because they don’t require any client installation. Using one of your own components can be as easy as typing "<myns:ericsEditor/>", which in this case embeds a small word processor in the page.

"Every developer knows that encapsulation is a good thing -- why don’t you target a browser that has big-time support for encapsulation?"

The oddly named viewlink feature of IE 5.5 makes it easy to include document fragments into code without cluttering the underlying document model. Viewlinks can be used to import both custom components and document pieces. For example, you can include a table containing company information -- complete with nested tables, specific corporate colors, and special layout -- without worrying about the fragment being changed by document styles applied in the parent document. Additionally, the source code of the fragment isn’t displayed in the page’s source code. For components, viewlinks make it easy to import encapsulated objects for use on a page.

"Why is an input box the only place a user can type on a page? Target IE 5.5, and I’ll fix it so you can decide where a user can type. Heck, I’ll let you type into a <DIV>, a <SPAN>, an <H1>, or pretty much wherever you decide."

A new feature of all HTML objects in IE 5.5 is the editableContent property. When set, the user can click the cursor within the objects boundaries and start typing. Using this technique, it is simple to allow rich editing, complete with boldface, color, and fonts. Creating a rich text editor only takes a couple of pages of code -- which can then be imported and reused wherever you need it.

"As you know from my other main medium – television," hisses Microstopheles, "appearances are everything. Use my browser and I’ll toss in a bunch of stuff to make your site look marvelous."

How about support for HTML-TIME, a sophisticated method for synchronizing multimedia sources -- such as synching video with closed captions -- or declarative animation, without writing scripts. Too fancy? How about inline frames that respect z-index positioning? IE 5.5 offers better transformation and filters, including support for alpha-channel portable network graphics (PNG) files with transparency calculated for each pixel.

"Look, even if you don’t agree to target my browser, I’ll throw in a few features if you’ll just agree to use IE 5.5."

Microsoft reimplemented frame support using its viewlink technology -- no longer is another copy of the browser executed for each frame on a page. The result is better frame performance. New printing features include improved print page selection and a preview feature.

The Soul At Risk

As the smell of brimstone clears from the air, you start to remember why the Web is important to you in the first place. The entire world is communicating freely, from mainframe to cell phone, from PDA to PC. The flash and sizzle of IE 5.5 is nice, but if my site needs reach then I need to target a platform that works on every machine. The Worldwide Web Consortium standards for Cascading Style Sheet (CSS) Level 1, HTML 4.0, XML 1.0, and Document Object Model (DOM) Level 1 have been stable for anywhere from one to four years. Which of these does IE 5.5 fully support? None. IE for the Mac fully supports HTML 4.0 and CSS1. In other words, you can write standard-compliant HTML that won’t even behave the same on a browser with the same name from the same company. While the debate is heated, most developers would eschew the new features in IE for the benefit of raising the lowest common denominator platform to encompass these four standards.

If you are developing for an Intranet and you have the luxury of unilaterally controlling your company’s browser choice, you can safely target IE 5.5 without selling your soul. Developing IE 5.5-specific applications for the Internet, however tempting, will limit your company's reach and lessen the chance of future standardization on the Web. Is it getting hot in here? --Eric Binary Anderson has led projects at a number if enterprise software companies and is currently the senior architect at IBT Financial, an Internet-based training company in Bend, Ore. Contact him at ebinary@columnist.com.