The one request that stands out the most in those IE feedback threads is to make web development a one-time effort – or at least a one-browser effort. Web developers are tired of writing html and script that works fine on Browser A, but is broken on Browser B. If they fix Browser B, Browser might still work, but doesn’t look quite right. Fixing Browser A then breaks Browser B’s appearance. And that’s to say nothing about Browser C on Platform X at Y by Z resolution with F Font.
So this got me thinking… if we can’t make every browser render the same way (and thus making them basically shells for the same “standard” rendering engine), how about we take an idea from the 3D Graphics sector.
For those that don’t know, High Level Shader Language (or HLSL) and Cg are both high-level shader languages (I know, I know, a complaint has been filed with the department of redundancy department).
The way these work is pretty simple: Game developers write their shaders in the very powerful but simple high-level language. When they ship the game, the code is in the high-level language and thus can’t be run directly by any graphics processor. However, when the game is run, the HLSL code is compiled by the driver according to the HLSL or Cg standard into code that the particular device can understand. This means that you can code once in a simple straightforward language and get optimized execution of every card that has an HLSL compiler. Ideally, this should be every DirectX 9.0 GPU.
So how could this apply to the web?
Well there are two ways to do it… One has been more or less attempted but never seen through to completion. And that is to develop a design tool that targets multiple browsers and platforms. Dreamweaver has a bit of this idea implemented, or at least it used to (I haven’t used DW in a while). This requires that the development tool have intimate knowledge of target browsers.
The other method would be to develop and intermediary language. The benefit of this is that the IL can be derived from the targets… so you can make sure that for every IL function, there is an equivalent and accurately translated native function. So you write your code in the IL, or with a tool that builds IL code, and then compile it for your target browser(s). This could be a big industry standards initiative, or it could be one very dedicated development company (or team at a company like, say, Microsoft), that wanted to develop the world’s best web design tool.
The problem with rebuilding Internet Explorer as a fully W3C-compliant engine is that by the time it’s complete, and becomes ubiquitous enough that you can actually just write W3C code everywhere and trust that it will work, these standards will be obsolete. Hell, by that time, web browsers may well be obsolete. HTML may be gone as we know it.
That’s certainly not to say that innovation should just stop because of what MAY change down the line.
What I’d like to see, whether through blogs, Channel 9, or otherwise, would be a real discussion of these issues with the IE team. I want to know why implementing the W3C standards in IE would be so difficult. I really truly believe that they have good reasons for not having done so already. I think there probably are some disadvantages to doing that. But I think the more the IE team discusses the problems and makes their reasoning clear, the happier web developers will be.
So that’s my challenge to Dave Massy. Involve the community with your team. Don’t just absorb every customer request and then decide what works internally. Talk about those requests… Offer ideas. Don’t assume you know what decisions your customers would have you make when designing the next IE. ASK THEM. They won’t always be right, but sometimes they might just think of something you didn’t. At the very least you’ll learn why something is important to them, and might even think of another way to give them pretty much what they want without having to do it exactly how they thought you should.
I’ve seen Microsoft and their employees take great steps in this manner. Here’s hoping the new IE team will continue to make great strides in customer involvement and open discussion.