It’s a pain in the butt to ship a web app that works in all of the relevant web browsers today. It seems that crafting stylesheets that works in all of them at once requires as much specialized knowledge today as writing a compiler did a decade ago.
As the rate that browser vendors are shipping updates keeps getting faster and faster, it’s becoming almost impossible for web developers to keep up. Despite that most of the browsers with fast release schedules are well-behaved and make every effort to be as standards compliant as is practical, each micro-release provides a moving target that requires attention and ongoing effort for each developer to keep in his sights.
As a developer, I’ve certainly been in a situation where someone’s platform changed out from under me, and it didn’t jump to the top of my priority list to fix whichever of my features they broke. Not that my customers care whether it was my fault or a platform vendor’s–I’m sure they were frustrated at me, not at Facebook or Microsoft or Google or Netflix or whoever just made the breaking change in question.
Even Google, who with their Chrome browser, set the bar for frequent, high-quality browser releases, is having trouble keeping up with Firefox’s Chrome-inspired rapid release process. I have two recent examples: 1) the Google Toolbar is not yet compatible with Firefox 5, and 2) Google Docs lost drag and drop support post Firefox 3.6, and they still haven’t fixed whatever broke.
I’m willing to assume good things about Google’s intentions here, and figure that it just isn’t a high priority for them to keep up with the Firefox release treadmill. Surely they’re not being proprietary buttheads and being intentionally incompatible in subtle ways with their competitors’ platforms. After all, that would be evil, right?
As browsers begin to ship faster than ever before in an effort to keep pace with the capabilities provided by iOS and other native platforms, we should, at least in the short run, expect to see much more churn and many more breaking changes (some accidental, some intentional). It’s unfortunate that the churn will be worst in exactly the features that are most interesting and innovative–the features most needed to bring web experiences up to par with their tightly integrated, and much more mature desktop application competitors. (The aforementioned drag and drop into Google Docs is a fantastic example of this.)
I don’t think there’s any perfect short term solution here–I think that we’ll have to continue to trade off which side of the “seamlessly integrated” vs. “web-style application delivery” chasm our projects will be built on. Meanwhile, we know that the browser vendors are (mostly) fighting to make web applications feel as native and integrated as possible, while the native platform vendors continue to snicker to themselves at our browser compatibility pains. Maybe someday we can have the best of both worlds.