However, once you do understand CSS browser discrepancies really become a minor annoyance at most. You code pixel perfection in one browser, and ensure all the other browsers don't go too far off course. The only exception is IE6, and for that you can use something like http://code.google.com/p/ie7-js/ to "upgrade" it.
There is really only one feature I wish Microsoft would add. The CSS property Opacity should apply to form fields as well.
Everyone on here talks about making the sign-up process as easy as possible, and requiring someone to download and install an entirely new application is about as complex and uninviting as one can get. Us "technical" people are still people, and the more you annoy me with the signup process the less likely I am to complete it. Even starting up a new browser and copying your URL is a nuisance.
Secondly, I've never really had a Safari/FF->IE7 bug that didn't take about 30 minutes of Googling or simply making a sneaky workaround. There might be some cursing in between but it simply has to get done otherwise it's ignoring a big audience.
Edit to Clarify: I am in full support of dropping IE6 as most of you have noted, seeing as how the user base has dropped and the majority of people with IE6 have been "auto-updated" to IE7.
Just supporting the way various sub-versions of IE6 inconsistently handle cookies is a nightmare, and in many cases lead to unsolvable issues. This costed a client of mine real $$$$ to discover, and less than 20% of their audience used IE6. Less than 15 people actually complained about the issue.
IE 7 isn't quite as bad, but it still adds a measure of time to front-end development efforts. I would estimate it in the range of 10-20%, depending on how complex the interface is.
On two recent projects, we dropped IE6 support, with virtually no push-back from a general-use audience. IE6 is almost 8 years old. Most people don't keep their cars that long, and can understand that an old crusty browser is not going to perform as well.
The only place where I would be hesitant to drop IE6 support is on marketing sites (where you need to entice someone to a call-to-action within the first 30sec-1min) and on e-commerce sites, where every dollar counts.
This is only an issue for developers who target Firefox initially. That's the wrong way to go about web development. Run IE7 on your dev box and build everything against it. That's what your users will have, so that should be your first priority. Step two is making it work for FF.
The added benefit to that approach is that you'll find less cross platform issues. Going from IE -> Firefox is a lot easier than the other way around.
First develop for a standards-compliant browser, then add (conditional) hacks to support IE. The other way around is just silly.
And have you ever tried to develop complex ui sites on IE? I'm sorry...it just sucks and there is no good way around that. And I'm someone who knows IE6/7 quirks pretty good. Their script debuggers are utter crap and their developer toolbar is the most ancient thing out there. At least in IE8 they are copying Firebug...at that point it might not suck as much but who knows until I use it a while.
I never understood all the IE hate, to be honest. Until Chrome came out, I used IE7 as my daily browser. It's just better than Firefox in my opinion.
I share your sentiment.. I develop against IE first then test it against the "good" browsers... which rarely screw it up. IE sucks for script debugging.. I mean EPIC suck. You're not even told what line of what file is screwed up (IE seems to concatenate everything into 1 file when giving the error report), but I've learned to rely on myself not to make common scripting mistakes, and created a cross-browser "console" object to aid in debugging.
Safari has the worst script debugging on the planet. It essentially tells you whether or not there was an error. Oh, wait... and how many errors, total. Thanks, Safari!
And yeah, it takes about the same level of effort to develop against IE as it does against FF. The advantage is that your stuff generally then works right in Firefox first try.
(among other google results)
But, then again, there apparently were several Google results.
If you recall, Netscape used that same box model until version 6. So if you'd like to look for a point where standards were broken, look to W3C and Mozilla. It's certainly not Microsoft's fault that the "standards" organization decided to change the fundamental way things are rendered in a browser.
see : http://books.google.com/books?id=ZCPWYFoWaMIC&pg=PA289...
"Standards organizations" are there for a reason, so that issues like this wouldn't be so egregrious. Microsoft has had a while to fix it, and 8 years later far too many people are still using an old deprecated browser.
Consider, for example, that Flash/IE is a completely different plugin than Flash/all-other-browsers. We've definitely had Flash compatibility bugs between major versions, between minor versions, and even between the "same version" on different browsers. I can think of a few that took many of us more than 30 minutes just to trace through, much less come up with a workaround. And all of this only because IE (even IE8, AFAICT) doesn't natively support any kind of client-side graphics.
I don't know where the 30% overhead estimate for IE came from -- maybe a simple site? That sounds really, really low to me. I would put it at least 100% overhead for the kinds of things I do.
I think you're mistaken. I tried IE6 and IE7 just now, and they don't do SVG (though it nicely offers to save the file).
I think you're thinking of something called "VML". IE does have that, but it's not the same as SVG, not as full-featured as SVG, and nobody else supports it. Maybe that would solve some of my problems, but I'd never even heard of it before -- though I'm sure checking it out now!
I think the URL you meant to post was <http://code.google.com/p/explorercanvas/>. I looked at the source, and it uses VML, not SVG.
"IE does V" is pretty much all I was trying to convey. Good luck!
The problem is it makes everything so brittle and people tend to do things the shitty route just to support IE.
Maybe it was the last changes to fix IE6...but I actually looked up browser percentages and considered dropping support.
While I agree it was awesome it's only appropriate if you don't lobby Microsoft by shafting your users.
And your 40% is just way off base unless you're writing salesforce.com apps or something like that. We see about 20% of our IE traffic at IE6 still and dropping fast. 18 months ago that was still at 50%.
Also, 40% of 2/3 is about 26% of the whole, which I wouldn't call "wildly off base" even for your site.
I'm pretty close to pulling the trigger on dropping IE6 support on the sites I run. I don't think it's unreasonable to ask our users to upgrade to a better browser. And believe me, my company is NOT targeting the corporate user at all. :) The amount of time I spend fixing IE6 issues is just insane. I could be doing so much more that helps other users and if I can get them to upgrade to a better browser in the first place then so much the better.
I will close with this: It wouldn't suck as much to fix issues on IE6/7 if it just had decent development tools such as Firebug, Tamper Data, and Web Developer.
Quite often it's worthwhile maintaining a bare-bones version of your site. For more than just compatability - there is also accessibility, printing, slow connections, etc, etc. Surely it's a better user experience to just downgrade them to that?
Internet Explorer was used for 3.63% of visits to the site during the month before I made this change.
I understand the frustration that IE isn't fully compatible, but as engineers it's not our job to change the world to suit our own needs; we shouldn't be converting users to a different architecture or web browser.
IMO, 10% is a lot of users - perhaps, silently degrading the experience is better than potentially offending people that have to use IE for whatever reason. When I have to use IE, the last thing I want is an application or webpage rubbing it in my face.
Often rubbing something in someone's face is the only way to evoke change. To degrade the experience and let the user know why it's been degraded gives them a clearer understanding of the problem. Being struck with the same problem enough times tends to get someone to act to solve it.
Sure I got _a lot_ of negative comments for it (and still do), but in this particular case I definitely put my own sanity way ahead of the larger (but dwindling) market share.
Sorry to now be a bit inflammatory (this single question is one that boils my blood every time), but put simply IE sucks ass! IT SUCKS ASS! I _HATE_ IE. MICROSOFT HAS _ZERO TASTE_ (thanks Steve Jobs for that very early insight). Ok, enough said. Sorry.
When someone who doesn't run Windows or IE builds a site for their peers who predominately don't run Windows or IE either, then finds that they have to jump through some hoops to support IE, is it any wonder they decide to pass?
My point is, how can a 2 page website drop support for a whole browser? Just seems like laziness to me.
While I admit, IE really blows, and I hate developing for it, it's really not that bad. It's manageable if you test on it often, which author failed to do. Is it hard to make a 9 cell table to get rounded corners? Or how about learning "hasLayout" which fixes virtually every IE6+ css rendering bug?
I agree that developing for IE isn't the worst thing ever, but it's certainly not fun. I have to side with Marco on this, if I were to build a site just for fun, I'd probably never look at it in IE.
If it's so important to "business types" to support IE here's an idea: make them pay a fee so it covers the extra development costs (this is not outrageous in general; there are open source projects that cost money for the Windows version).
This is not a government site or an Amazon that has to please everybody. I bet none of the people complaining have ever suffered trying to code around the IE compatibility problems.
I think I'd rather be him.
Maybe only 3.7% of his users are IE users because they get a whole lot of attitude when they visit his site? Or because a lot of IE users either don't have the choice (corporate) or the desire or the skill (grandma) to upgrade their web browsers. Perhaps CEOs of major corporations visit his site every day curious about whether they might deploy his service across their whole company (ok, fantasy), and then leave because he says he doesn't want to support them. Perhaps his business could be 20 times bigger if he wasn't so obsessed with this issue. Perhaps that isn't the case now but it might be down the track.
There are lots of great frameworks out there that nearly completely remove the cross platform issues in coding for browsers these days for all but the most unusual requirements. This is not the issue it once was.
Keeping / installing IE is the default option for most corporates. Change is difficult. IT Admins struggle for respect in many cases, and know that fighting over IE or FF means wasting ammunition they need on more important projects.
Keeping Firefox/Safari is the default option for most web developers. Change is difficult. Web developers struggle to make a living in many cases and know that fighting for pixel-perfect view in IE means wasting ammunition they need on more important projects.
... couldn't hold myself. Sorry :-)
Microsoft should just stop working on IE and concentrate on the OS. We don't need Opera, Chrome, Safari, IE, Firefox, etc... They're /all/ free. Take the best of them all and build /one/.
Just extrapolate the situation from what it is to where it would be if there were 100 browsers and they all worked differently. /Then/ how productive would developers be?
Look at the recent post from instapaper not supporting IE anymore. Look at how much time and energy is lost due to browser incompatibilities that would be solved if all content looked the same in all of them.
Imagine some new electricity company coming on board saying, "Yeah, but we want to pump DC into the grid."
It would never happen, yet, because no one setting policy understands the internets, they don't understand how much productivity is being lost due to competition in the browser market.
Competition is not always good. Almost assuredly not in cases of public infrastructure. Look around the world at privatizations of water systems, utilities, etc in poor countries around the world. Costs almost /always/ go up.
Competition is good in some areas and bad in other areas and when we /all/ need to be on the same page, collaboration is better than competition.
A single browser is a bad idea for several reasons. Firstly, there would be an inclination toward being very conservative. If you make a breaking change, you break every site on the web. If you implement a new feature, you'd better be sure it's the right feature, or be stuck with it for a good many years to come. If you have a bug, fixing it could break sites that rely on that bug for rendering.
Secondly, different browsers fit different niches that aren't necessarily compatible. Do you make your uberbrowser fast and lean? Or plug in a lot of extensions? Add a mail client? A bittorrent client? Should you have a smart address bar? Something that integrates well with a particular OS? Something that can be run on a phone? Or a console? Or a PC? Or a netbook?
Third, I'm not aware of any software product that has been written in a competition-free enviroment and has turned out to be any good.
Fourth, the state of standard support in browsers generally isn't that bad. If your site works in Firefox, it probably works in Safari and Opera as well. I have very little problems when it comes to cross-browser support... except when it comes to IE. I don't presume to speak for everyone here, but 99% of all my browser headaches in the last few years can be laid squarely at the door of Microsoft.
In other words, the root of most browser woes is due to IE, which web developers support because it has a majority market share, a market share maintained by Microsoft's rather anti-competitive practise of bundling it's browser with its OS. We didn't get into this mess by having too much competition; we got into it by having too little.