Well the moment I've been dreading has finally arrived. The Microsoft IE team has announced that IE 8 will include an important new feature that is not standard to Ajax: The ability to update the navigation log using JavaScript.As Waldek Mastykarz said in his blog Innovation Matters, "What concerns me is the fact, that it will be supported in IE8 only." You got it; Microsoft has drawn first blood in what will be the next browser war. As Microsoft introduces new features the Firefox team will be faced again and again with two questions:
- "Do we implement everything Microsoft does or do we pick and choose?"
- "Do we innovate through a standards process or do we choose to implement first and standardize second?"
The answer to these questions will determine whether or not Firefox falls in line with Microsoft or asserts itself as a leading browser provider. The outcome seems obvious to me: No self respecting open source team will allow Microsoft to dictate its technical direction.
The Firefox team might implement this new navigation feature for Ajax applications, but it won't implement everything Microsoft chooses to add to each new version Internet Explorer. As a result Microsoft IE and Firefox will diverge to the point that Ajax applications will no longer be portable across these two leading browsers.
The downfall of DHTML, a lack of consistency across browsers brought about the first Browser Wars of the mid and late 1990's, will be exactly the same downfall for Ajax. Microsoft and Firefox are about to rekindle the Browser Wars and its the developers and end-users who are going to suffer.
This only confirms in my mind that plug-in technologies provided by a single vendor (e.g. Flash, Curl, Silverlight, Java) are the only viable RIA solutions in the years to come. Microsoft and Mozilla can innovate and diverge all they want, the RIA plug-in solutions will be able to adapt quickly and effectively protect and encapsulate applications inside their own runtimes.
Ajax is dead RIA walking.
Update:
My old friend Dion Almaer took issue with this post in his own post on Ajaxian.com that says:
I'll admit that I didn't know that this feature was included in HTML 5. The fact that it comes from the HTML 5 standard is certainly encouraging - I really do want Ajax to survive because its a great mass-consumer solution and it provides the glue that allows us to wire different RIA solutions together.
What is interesting here is that even though Sharath said: "adopted in IE8 from HTML5" we have Richard Monson-Haefel (Curl evangelist) saying Ajax is dead RIA walking. This strong conclusion comes from the fact that IE implemented an HTML 5 feature???
Having said that - and not being one to give up so easily - there are two things of interest. First is the fact that HTML 5 is a working draft, not a finished specification. It's quite possible that the APIs in that draft will change before its finished in which case Microsoft's implementation of this feature could be broken. Will Microsoft wait for the W3C to finish HTML 5 before shipping IE8? Maybe, but I doubt it. So IE8 could ship with an API that changes.
The other issue is how much of HTML 5 and what parts of HTML 5 does Microsoft plan to implement in IE8 and future versions of IE? Which parts will Firefox and WebKit implement with what versions of their browsers? I suspect that different browser vendors will implement different aspects of HTML 5 at different rates according to slightly different versions of the HTML 5 specification. Not exactly a recipe for consistent and standardized implementations across browsers.
Just look at the the inconsistent implementation of other W3C standards such as CSS and SVG: None of the vendors implement all the features of CSS. Microsoft will pick and choose the HTML 5 features they wish to implement and by not embracing the entire specification (which is only in draft format) they will effectively make their browser less compatible with other browsers and so we are back to square one: Inconsistent implementations with features sets that are so disparate that Ajax frameworks will not be able to keep negotiating the gaps.
The fact that IE8's new feature is defined in the working draft of HTML 5 is encouraging but not convincing given the history of the parties involved and the history of implementation of W3C standards.

