Tuesday 6 November 2007
Intranet Explorer
I'm fascinated by the silence surrounding IE8. It suggests two possibilities: they're silent because there's nothing happening at all, or they're silent because they're cooking up something astounding. Both seem improbable; the latter, because Microsoft likes to advertise broadly and early to developers, and the former, because what was the point of waking up to do IE7 and then going back to sleep again?
Either way, they're showing little interest in implementing new Web standards such as ES4 or the WHATWG APIs (nor old ones such as CSS2.1 or DOM Events). Since ES4 is backwards compatible with ES3, the argument that it would break compatibility is bogus, but nevertheless that's their line. We heard the same thing during the IE team's three-year holiday between IE6 and IE7, interestingly enough --- the "compatibility matrix" made it too hard to do anything. Sometimes they seem to argue that they were right the first time, IE7 was a mistake and it actually was too hard.
Attitudes to compatibility are actually very interesting. Microsoft seems to take the position that any change that negatively affects a Web site is bad. Mozilla --- and our friends at Apple, Opera and elsewhere, I think --- insist that when sites rely on a bug that clearly violates a standard, we will fix the bug even if it hurts sites. (In some cases, we might push to change the standard instead, but only if the "bug" is at least tolerably sensible behaviour.) So for every major release we fix a lot of bugs, and we risk breaking sites.
I always expect Web developers to grumble about this, and every time I meet some, I ask them whether our relaxed compatibility causes them problems. The answer is invariably "no"! Or at least, the developers I meet prefer us to fix the bugs because although it may break things here or there, overall our more consistent behaviour makes it a lot easier to develop Web apps for Firefox than for IE. Almost everyone tells me they develop their sites first in Firefox, and when everything's working, they backport it to IE. (For some reason I always feel shy when I hear this.) I guess if you're going to iterate your site design, you want to do that with the browser that's easiest to work with.
Actually I think both attitudes are right, because we're addressing different sets of users. I suspect when Microsoft talks about compatibility they're largely talking about intranet sites inside corporations, which are often maintained poorly or not at all, so anything that's broken by a browser change will remain broken forever. And it's easy to see how the needs of large corporate customers can come to dominate the thinking of a software organization --- they're large accounts with focused contact and are used to getting what they want. (Hey, I worked at IBM!) As another example, we've seen how Microsoft's slow security update cycle trades off the security of home users against the convenience of large customers.
Maybe the time has come for Microsoft to split (at least at the engine level) the "intranet" browser from the "Internet" browser. Otherwise they actually risk painting themselves into a corner, where more and more Internet sites are optimized for Firefox or anything but IE. It sucks to be late to the party and having to be the third or fourth implementor of a bunch of new APIs; you've lost your say in how those APIs are designed and may be compelled to reverse engineer the behaviour of other browsers (although thanks to Ian I hope the latter is less of a problem than it used to be!).
Of course, there's a whole other perspective on this: Silverlight and .NET. "Compatibility constraints" in IE make a handy brake on the evolution of the open Web, very useful when pushing a competitor to the Web*. (Many have pointed out the big joke about Microsoft's ES4 objections, namely that C# has gone through two huge revisions in the last few years.) Shiny new platforms like Silverlight and WPF don't have to worry about compatibility now, but it will be interesting to see how they handle compatibility going forward. We're in a marathon, not a sprint, it will be a few releases before they get traction, and if they have to ship side-by-side Silverlight assemblies, one for each version they've released, it's not going to be a small download or a mobile-friendly footprint.
* It's uncouth to speculate that Microsoft's representatives might act in bad faith. Unfortunately, history shows it's a real possibility. I want to be polite, but not naive.
Comments
After all, we learnt so much from the innovation in IE4 (e.g. Ajax, CSS filters, timing, VML). That type of innovation can help the standardisation process later on, provided of course there's a) commitment to standardise, b) it doesn't break anything and c) it's clearly marked as an experiment, e.g. using the -moz- prefix. MS didn't follow these innovation rules, but other browser makers could, and it would spur innovation across the web.
But bug fixes do NOT count as innovation. They should happen anyway, unless they've become generally used as a 'feature'.
As an example of innovation that plays by the rules (so far!), I would be interested to hear Mozilla's take on the new Safari CSS extensions, CSS animation and CSS transformations. It would be great if a -moz- version could be added to the wishlist for Firefox 4, alongside ES4!
1. Avoiding over-promising, as happened with Vista.
2. Wow effect when the wraps come off.
Whatever is coming, it's not likely to involve ES4 and WHAT-WG web apps stuff in force.
I know stuff is coming because some gurus I trust have confided in me that they've been invited, under NDA, to Redmond for a dog-and-pony show. Oh, and some kind of covert anti-ES4 blog-spin campaign has been going on for a month or so, involving an unimpressive ES4' (formerly ES3.1) sketch. But that's all being done in the dark.
A few top web developers I know are convinced that IE8 will have two engines, Trident and a brand new one. I find that hard to believe, unless the brand new one is simply a mutated clone of Trident. It seems likelier to me that Silverlight goodness will be infused (CLR, DLR, fancy text and graphics) into Trident. But who really knows?
/be
Since the user base is small, they are in a state of derelict that borders on the apocalyptic. We had to develop dynamic filtering proxies (10 years of Perl hacking came in handy) to correct the bugs for our users. Most of them are minor, but render all sites useless. They usually stem from a completely misguided and useless form of dynamic HTML. All sites break because of poorly thought-out and implemented roll-over menus that already looked retarded in 1997.
One of my favourite example, from an insurance company worth dozens of billions of euros , breaks on Firefox because of 10k of buggy JavaScript loaded on every page hit. What does it do? Well, it mainly ensures compatibility with IE4 and Netscape 4. And incompatibility with Firefox, Safari and Opera as a side-effect.
But here's the kicker: the extranet was put in production use in late 2004, long after the last NS4 user was crushed under the Chixulub meteorite.
In the mean time, most of these site force people to stick to IE6, and advise in big flashy letters on their homepage against upgrading to IE7.
[BTW I can't type the euro sign, your form messes it up: €]
The hyperfocus on compatibility is real and Chris Wilson and I discussed it over lunch before I started at Mozilla back in April when I happened to be visiting Seattle. The logic there is both the one that you outline above (focusing on corporate customers) but also one where they are aware that IE is still the dominant browser.
If you have, say, 82% market share and that is hundreds of millions of people and you make a change that affects .5% of sites, how many people are impacted by this? When this happens, who do the end consumers blame? The site for being badly coded or their browser for "not working" right?
That's what makes them gun shy about change as much as any other motives.
MSIE has not recived any substantial improvements in the last few years. Everybody else supports advanced CSS stuff, AJAX, client-side-storage, what-have-you. MS is just sitting there on its big market share and hopes Firefox does not eat too much into it. Web developer inertia and ActiveX-heavy intranet sites are the biggest assets of Microsoft.
However, developing apps for .NET or java is incomparably easier. The instant something like Silverlight, Adobe's AIR, or any other platform gain functional parity with AJAX the game will be over and everyone will (quite happily) use HTML simply for documents and simple dynamic websites, and not for applications - for the same reason people prefer firefox now.
Functional parity in this context includes distribution of the viewing client (a sticky issue), equal or better performance even in odd corner cases (that includes startup time, and usage in a heavily cached situation), good text rendering (i.e. unlike flash), good integration with the host windowing system (including copy-paste, focusable UI-elements, perhaps styling of UI elements like buttons) and it might never happen.
As an application developer, I hope someone, anyone, gets critical mass rather sooner than later. Personally, I'd favor silverlight given the attractive DLR and open-ness of the platform, and given microsofts skill in wooing developers with good tools, but its the principle that counts: a developer wants a predictable, reasonable API with a large community.
If IE8 is a critical update pushed with usual monopolistic disdain, and full of bugs and horrible compatibility issues, I'll still be jumping with joy if if provides a good silverlight experience out of the box.
I agree we need better tools for the open Web. We also need better debugging and diagnostics in the browser. Hopefully Snapdragon and work in Gecko itself can help.
The posting dated November 7, 2007 6:53 AM, was not made by Al Billings. I made it. I filled out my name and E-Mail address correctly, and went back and forth between preview and edit mode a couple of times to kill typos. I have no clue how Al Billings name was connected to the posting. I don't even know who he is.
WHATWG doesn't have any Standard, only proposals (Working Drafts), but you are aware of http://www.w3.org/html/wg/html5/ ?
My posting is the one that begins with "It is my firm opinion that Microsoft has absolutely no clue what to do with MSIE." It appears I misread the line above it and believed the software had linked my posting to Al Billings name. Sorry.
"ADAXL", you're confusing the signature attribution on your post (which is blank and follows mine) with the one on my post, which immmediately precedes yours. The name and timestamp on a comment here *follows* the comment. It doesn't go above it.
Anyway, I'll agree with ADAXL that roc's blog could use some reformatting, considering how it's also a pain to link to comments too.
1. Improvements to JScript (there was a post at the WaSP some time ago about the meeting with the IE devs)
2. Chris Wilson said they're working hard on the layout engine part (of Trident I guess) in a recent interview.
If I understood Wilson right, IE will get a full standard compilant mode like other browsers. This mode shall be accessed by the HTML5 doctype or some special opt-in for HTML4 documents.
Both sound great, but I wonder what we'll eventually see.
Oh, about Intranet: Where I work we got Firefox 1.0.4 installed (yeah..) and It works well with our Intranet (whichs merely is a website pointing to some documents). file.//-links don't work and not everything is displayed "correctly" but it works.
Yet another thing: I think Firefox needs some MSI/GPO work before companies can use it widely.
Sure, that's why ActiveX and Applets where such formidable successes. And that is why the term AJAX was not coined, why the web 2.0 never took off, why ES4 is not such a frightening threat to Microsoft and Sun languages and why the first came up with Silverlight while the second is now pushing a JavaScript look-alike called JavaFX.
I wouldn't be surprised if Microsoft wasn't doing anything in IE and was just waiting to see what happens.
It's not a bad strategy, given that everyone just has to support IE6+, HTML5 is designed with all IE6/IE7's bugs and quirks in mind, so all will sortof work as long as they do nothing.
P.S. If you copied it from somewhere else, you still have great taste!
Redesign the layout of your site ok?