Q:

Web Programming Cross Browser Frustrations Normal?

So I'm a relatively junior programmer, been doing it for a couple years now and have been recently working on a redo of the company's website, and have ran into some frustrations and was just wondering if that's the way it goes or if I'm missing something. I am by no means a designer, I focus on the code and don't pay much attention to how pretty it looks, that's someone else's job as far as I'm concerned.
That being said, I have been working on getting some things to work and the cross Browser problems have made me hate Web Development. I try to get html5 videos and no go, put in a flash backup and only works on half. Throw a Google api in and it looks like crap in ie and opera. The actual code behind doesn't work in ie7. It just seems like one thing after another. As I said I'm new to Web Development. Is this just the way it is? Throw some basic code in, then take all day/week to make it work everywhere?  I've cooled off since my initial frustration but I'm just wondering if this is normal practice or how typical web programming goes, because it seems pretty lousy to be right about now. Thanks!

A:

In the beginning, there were standards. Then, every browser decided to interpret them differently, add new features, and just plain forget the standard. Unfortunately, coding against all these browsers is a headache. Most of the normal layout will "just work," but fancy things (HTML5, CSS3, etc.) will not work in older versions of IE and probably doesn't work quite the same across all browsers (we have the standard border-shading CSS property, the -webkit and -mozilla prefixes for older versions of those browsers, and ActiveX filters to make IE do the same thing).
There is some hope, though. Browsers are getting better every release. IE 10 is far more compliant than IE 7, which is something you specifically called out. There are also HTML 5 shims that you can use to add some support for older browsers. JavaScript frameworks like jQuery iron out peculiar DOM bugs and other inconsistencies in implementations (although you'll want to use the 1.9 branch rather than the new 2.0 branch to keep support for legacy browsers). The web is slowly getting better, but until we can all agree on everything, you have ease of programming, browser support, and functionality to consider. You can only pick two.

