views:

109

answers:

6

When CSS and JS got popular, the big frustration was that every browser implemented it differently and only a limited set of "cool stuff" worked across browsers, or worked differently.

Now we're making HTML5 popular, so it seems like we're about to embark on the CSS/JS incompatibility journey all over again, but now in a 3D, animated, and video-playing style.

My question is this - are the big browsers varying HTML5 implementations in such a way that we're headed down the same path again? Is there another IE6 around the corner?

If not, what makes this story different?

+2  A: 

What's different now is that every "modern" browser maker (*) is participating in a concerted effort to have compatible and complete implementation of the standards, and also participate in the standards definition.

By the way, CSS and JS are very important pieces of HTML5.

(*) Everyone but Microsoft, but given HTML5 momentum, Microsoft has decided to implement (part of) HTML in IE9. I expect that they'll work it out right this time, everyone else being on the same track.

Vinko Vrsalovic
To be fair, Microsoft has parts of HTML5, such as contentEditable, even in IE 5.5. Also, some modern minor parts of HTML5 are available in IE8.
luiscubal
@luiscubal: Having parts of HTML5 in IE5.5 was not Microsoft's foresight, but the WHATWG's (and W3C's) hindsight. Also, as you say, some *minor* parts are already present in IE8. HTML5's origin dates from 2004, many years before IE8 was released. IMO, they have been pushed into really supporting it, instead of the other way around.
Vinko Vrsalovic
A: 

The story will be similar in that the pieces of functionality will probably be implemented slightly differently be each vendor. But, for now, the big difference is in that major sub-components of the spec may be omitted from browsers until the HTML5 spec is completed and all browsers catch up. There is a helpful too called modernizr (http://www.modernizr.com/) that helps your JS code figure out what's available and not available. I recommend using that, or something like it, to detect browser features at runtime so your app degrades gracefully.

Jack Cox
+3  A: 

This story is different because browsers now agree that compatibility is important.

Consider, for instance, IE9's "same markup" marketing. That's really an indication of the current mentality.

In second place, HTML5 is incredibly backwards-compatible. <input type="number"> will render like a plain text input field on IE6(and, as a result, graceful degradation is made easy)

Of course, people are still using many old browsers, but none of them have IE6-like market shares, so they can't really be compared. Also, the upgrade cycles for browsers seem to be shorter than they were in the early post-IE6 age.

I currently think that IEs < 9 are the most likely to become modern age IE6. For Chrome, its upgrade cycle makes it very unlikely. Not sure how Safari and Opera compare, but they definitively don't have massive market share, so they really have no chance of becoming IE6-like(I am not considering the mobile world). As for Firefox, it also includes free and simple upgrades, making me think that Firefox users will upgrade soon enough to the new version when it becomes available.

That leaves us with IE9 with no XP support, meaning that most XP users will use IE <= 8 until they switch OS.

EDIT: One more thing I really should mention: The spec of HTML5 takes compatibility across web browsers VERY seriously. I believe that will help reduce the incompatibility risks(although that certainly won't make Internet Explorer support WebGL, nor make Firefox support Web SQL).

luiscubal
IE 9 doesn't run on XP?! Sigh. It'll be another decade until XP has really declined in the corp environment.
Larry K
@Larry K - This is most likely to simplify implementation of hardware acceleration(Direct2D, for instance) and H.264 codec in video elements. But I agree it will delay IE8's demise.
luiscubal
+3  A: 

My question is this - are the big browsers varying HTML5 implementations in such a way that we're headed down the same path again?

Yes, of course. This will inevitably happen any time you add new features to a platform with multiple implementations.

It's not going to be as bad this time around because browser manufacturers are working together and trying to meet compatible standards. That wasn't always the case: back in the Browser War 1.0 days, Netscape and Microsoft did as much as they could to cripple each other and other browsers by introducing ill-thought-out, gratuitously incompatible extensions for web authors to rely on.

Is there another IE6 around the corner?

IE6 wasn't that bad, in its day. It's the first version where Microsoft really put some effort into complying with CSS standards (that they'd been instrumental in drafting!) and behaving compatibly. It was streets ahead of IE5 (with its horrible Box Model bug), not to mention the vile horror of Netscape 4.

The only problem with IE6 was that Microsoft considered it an end to the Browser War and so stopped developing it. Then when they did develop IE7, backwards-compatibility was poor, and because of the daft OS-integration you can't run both, which has left many enterprises with badly-written IE6-only webapps that mean they can't upgrade at all.

If there is a ‘next roadblock browser’ it'll probably be IE8, since that's the last IE that'll run on XP.

bobince
+1  A: 

When people talk of "cross browser" problems, they invariably mean "it doesn't work in IE". What you will discover now is that browsers add functionality as time goes on and then the versions get upgraded except in IE where that will take years. This neck/neck pacing means that a new implementation will be found in all the advanced browsers within months of each other.

The new specs also give the error condition, meaning, a browser vendor should return the same error as all the others. A vendor is more likely to use the 'vendor extensions' to first introduce a new feature, such as -moz or -o. Hopefully, this will all mean far less problems than in the past.

Rob
A: 
Meni
Silverlight is the new Flash. In a bad way, i mean.
Litso