IE8. Where's the Good Stuff?
Categories
...yadda yadda standards compliant yadda yadda Activities yadda yadda WebSlices yadda yadda...
Where's the interesting new stuff in IE8?
I'm all for standards compliance, but it's not exactly exciting, is it? Activities aren't bad, but they're really just fancy context menu extensions, and WebSlices are just single item RSS feeds with a terrible name. The fancy Address Bar shading has been in Firefox for ages. The Favourites Bar is ok, but it's hardly revolutionary. At least we have icons in the menus now...

The built in Developer Tools are a step in the right direction, especially the Layout tab and the built in Javascript debugger. (But they'd better fix the memory usage from IE7's plugin.)
And the Data URI? Do we really need to be able to embed images inline? I think it'll be useful for HTML email and the Acid2 test.
But to get to some of the good stuff, you need to have a look at the IE8 Whitepapers. Unfortunately, these don't really go into enough technical detail, preferring to be a high level feature overview. But there's still some nice nuggets in there.
For example, proper circular memory leak detection. They've fixed it (better than IE7's fix), but they don't tell us how. I'd like to know, but I guess I'm just nosey. IE7's optical zoom is changing to an adaptive zoom model, where layout is performed after zoom. Seems to be a bit subjective as to which way is better.
Getting a bit more interesting, there's Improved Namespace Support. Previous versions of IE have had some form of XML namespace support, but now it's improved! If you declared an XML namespace on the html element, all elements in that namespace would be ignored by the parser. You could then add an object tag specifying an ActiveX object that would implement a Binary Behaviour. You'd then add an <?import> processing instruction to tie the object to the namespace. Finally, your little namespace xml island would get rendered by the Binary Behaviour. IE8 makes this a little more sensible by registering the object client side, in the registry. No more object tag, no more import PI, and you can actually put the xml namespace declaration on the xml island's root element. This is how we can get SVG support (although Adobe have just end-of-lifed their plugin).
My favourite is Loosely-coupled Internet Explorer and Automatic Crash Recovery. ACR is simply Welcomed, Just Needed and Catching Up With the Competition, so we won't dwell on that. LCIE is nothing short of staggering. IE7 on Vista introduced us to Protected Mode, a change in the OS to run IE as a low-integrity process, limiting what it had access to. This in itself is above and beyond what any other browser maker has done (hey, they don't all write Operating Systems) for security. And they're building on it in IE8.
IE7 would host separate processes for running in Protected Mode and not. Navigate between Zones that had different Protected Mode requirements, and the navigation would have to complete in a separate process. A side effect of this is that a program driving IE via automation wouldn't get notification of the new process, and wouldn't get the new interface pointer. IE8 adds a new DWebBrowser2 event to handle this.
LCIE also builds on this. Crazily, the IE frame window is now in one process and each tab (or set of tabs grouped by integrity level, it's not clear which) run in another process. The frame can now host tabs from any integrity level, and any crash just closes that tab, not the whole process. ACR also remembers the navigation history and should restore things correctly. This is an impressive level of robustness. It'll be interesting to see what effect the asynchronous nature of the parsing and rendering has on performance. The IE blog has a good post on this.
So what's missing? Perhaps the biggest surprise is the lack of support for xhtml. And I haven't really seen anything about how these changes affect the Web Browser component.