Ideally, we would have different browsers supporting the same standards and same code producing the same result on all browsers.
That hasn't happened yet. What are the reasons why?
|show 2 more comments|
Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined in the FAQ. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about closed questions here.
No, it's not realistic, because the specs are confusing at times and everyone understands something differently than others. We're just humans after all. There can only be the one true standard when there's only one vendor with one version of a product.
Joel has written an excellent article on this subject, called Martian Headsets.
I think I'll quote him here, as this is the best explanation on why we won't ever see this as long as different vendors are involved:
Also, there's competition and evolution on the market. Take autocomplete-boxes for example. Every major browser has them already, but there's no standard defined. The W3C is just too slow and by the time the standard arrives, there're already 5 different implementations with different behaviours out there in the wild, that you need to support, too, if you want to be competitive. Another prime example for this problem is the embedding of videos.
That said: As long as you need to support various different browsers and environments, be prepared to make adjustments.
No, because W3C in many specifications give the responsibility of the implementation of somewhere to the UA implementers (browser implementers). Why I say that, because I usually write my articles directly from W3C specifications and see these cases. For example, W3C says that browsers should take user's consent about sharing their position (via Geolocation API), but it doesn't say how they should ask for it. This could result in different types of messages shown differently (popup, slide-down, etc.) in different browsers.
In general, we can say that:
As long as there are some pluralistic requirement implementation, consistency between browsers are hard to achieve.
We only can see consistent browsers when W3C imperatively tell browser implementers what to do.
Not going to happen in the form you describe.
However; if you code conservatively, it doesn't take much to write code that works reliably and predictably on all new browsers. We've already come a long way over the past decade - even IE currently implements a large subset of the W3C recommendations correctly, enough to actually make browser-agnostic websites.
Of course, if you want to do things that are not in the recommendations, or use features that are specced vaguely, or still implemented incorrectly (or not at all), then you're on your own.
It's extremely unlikely to happen soon -- in fact, I'd go so far as to say that when/if it does happen, it's strong sign that the world has moved on, and simply doesn't care much about web browsers any more.
The problem is fairly simple: most of the limit on writing new standards for even cooler things that browsers could do, is lack of (even reasonable) conformance with existing standards. Looking at that from a slightly different direction, the minute browsers conform with existing standards (or even come reasonably close to conforming), it's nearly certain that at least a few people are going to start thinking "But wouldn't it be cool if we could...", and they'll then do one of two things: they'll either implement their idea in one browser, and then work on standardizing their idea (almost inevitably before any other browser implements it), or they'll work at writing a standard for that behavior, even though no browser implements it yet.
The bottom line is that implementation of standards across browsers almost inevitably lags behind invention of new standards with which to conform. The only way the browsers can all catch up is if people quit writing/designing new things for browsers to do.
At the same time, I feel obliged to point out that more or less the reverse is also true: this is a constantly growing set of standards with which browsers conform ever more closely. It wasn't very long ago, that the best score any browser got on the Acid3 test was 93/100. As it happens, that's exactly the same score that IE currently gets...
That raises the question why we need different browsers. If all do basically the same thing then one browser will be enough for all. That would indeed be ideal. No more useless duplication of effort and no more browser-specific code. People finally could start building on a solid foundation.