Wednesday, 23. January 2008, 15:30:46
The entire IE problem is IE, as is known by everybody. Given that, how do you solve it? By creating a new IE. But then all kinds of _intranet_ pages break. A browser developer cannot detect whether such a page was meant for IE or for Opera (chances are it was IE-targetted due to market share).
Now MS has determined the upgrade costs for page devs too high. So the problem is stated easily:
1 every exiting page must work as it did in IE7.
2 every new page must work by IE8 rules*
* This is, pages developed by hand or by tools older than the IE8 release date.
Point 2 is needed because IE7 is broken. Point 1 is needed because browser vendors are scared for pages to break, see
firechicken, which is/was a kind of feature-complete-but-buggy implementation.
Both arguments will also hold for IE8, Opera 9.5, Firefox 3, ...
How to solve the mess? No more vague specs, no more bad implementations and no more bug-dependent sites. This is all very unlikely to happen. The truth is the only real (and badly documented) reference for authors are the browsers themselves. That's why the choice for browser targetting may not be so bad, for browsers with enough market share.
The problem for Opera: almost no page will include an Opera target, and the sites will not be updated for new browser versions, because it isn't necessary. This means Opera would have to spend hours analysing IE quirks.
I am an Opera user, and I believe is Firefox is not on the right track, and the current IE is broken. However, at the moment I believe the browser targeting is the best option to move forward.
Extra: feature based css won't work, because, if it existed a lot of years ago, IE6 would claim to support the css 2 box model and new switches would have to be invented for the firefox box model (firefox 2 + acid2, anyone) and then opera would need yet another switch, leading to browser sniffing like it occured (and still occurs) in javascript.
On that account, edge should be removed. Even CSS 2.1 might still change a little and therefor no current browser can be a definitive implementation and no author can code to the spec and be certain his/her page is edge. They will test it (probably in firefox) and conclude it is edge. Edge is _impossible_. You are predicting the future when you use it. You will need to change your page in the future and you will test it in some of the future browsers. It isn't much of an effort to update the numbers.
In the end we should ask ourselves: how can we make web time a reality again, without ever breaking older pages.
If people do want to edge to ship, it should be renamed and called crash, signalling this mode allows browsers to crash on the content, if it is coded to an unfinished standard or to a previous browser version. Of course the browser shouldn't really crash but show something like the Opera error when a non-xhtml document is send using application/xhtml+xml.
Concerns:
- Footprint: well this is a legitimate concern.
- Cross-version interactions: this will be solved in some ugly way.
- Maintenance burden: this is false. The same burden as the current one can be chosen.
- Security / Footprint: this is a strange issue. It is fully legitimate and has a very logical answer. The current specs are insecure (see same domain policy) and the entire nature of the web makes phishing sites easy. How do we solve it? Phishing filters. How will they solve security? Like antivirus and antispyware, antibadsites will be incorporated into browsers, like antiphising today. This may even be developed by Symantec and the likes, not by the browser makers.
This targeting (and every other switch) actually forces browsers and spec writers to offer something in order to persuade businesses and authors to redo their page for the next browser.
No new features means no updated pages.
Concerning mobiles: the targetting in effect makes mobile browsing different than desktop browsing (which it has always been). So in the long term companies are going to come across the issue: IE10 is out, but we target IE7 and the mobile community only accepts IE10mobile. Will we rewrite our current pages for IE10 and compatible with IE10mobile, or are we going to make 2 pages?
So who will lose? The open web, standard bodies, all small ones (mobile, Opera, Safari, ...)
So who will win? current market share holders: IE and firefox, bussinesses that don't target mobiles.
(Summary coming up)
To be continued ...