I've been seeing a lot of people whining about websites that don't work with a particular web browser (be it MSIE, Firefox, Opera, Safari, Konqueror and even elinks! -- people who only complain and make no practical suggestions). If you only keep the whining part, I was one of them. I actually learned a lot in a year and I'll share what I have learned.
Being the lead developer of several considerably large web applications (next generation and so called Web 2.0 or Ajax applications included) I keep grinning. People will complain. And that makes me sick, so I'm going to devote this entry to zealots. I hope they will like it.
First of all, I was actually wrong with Internet Explorer and Microsoft, there are excellent tools like Microsoft Script Editor that's included with Microsoft Office and Microsoft Visual Studio if you can afford the license fee. Fortunately my employer can, so we are able to use the best tools money can buy. The only problem is to get to know about them. I'd love to apologize, I'd also do it personally, for every single software developer who worked on these products. I really respect what they're doing, it's the company they're working for I'm having trouble with.
Free software zealots often try to stand behind Firefox (or rarely Konqueror) and blame Microsoft for not supporting or behaving different from W3C. You can recognize them on the spot. A screenshot that shows some site that behaves a lot more different than the developer initially intended to, and that screenshot also shows a funky browser theme and a lot of not-so-useful-for-the-casual-web-user extensions installed. They're blindly ignorant yet passionate people. They don't want to know about the rationale behind anything and only demand immediate solutions. We all know some.
Like it or not, Microsoft's more than %90 market share of web browsers is a fact that exists today. Every single Windows deployed has got one installed, and any installation of MSIE adds an icon called "Internet" on the most visible area of the computer screen: the desktop. Zealots can strive to convince another 1% next month, but that's going to take time and web developers (including me) design and implement for today, not for the future.
I have several like-it-or-not sort of facts about Microsoft that I'd love to talk about sometime, about the shiny new Vista and the .NET platform, that I think technically are wonderful achievements in the software industry to some extent but are going to have terrible impacts from several aspects. Those are going to wait. No, I'm not going to spit them out in a single blog entry, don't worry. I also would like to remind you that I'm a developer working 90% of the time on free (as in freedom) software tools and I'm in no way in any connection with Microsoft currently.
Put yourself in the developer's position. A highly talented web developer is not born with the talent, he represents a huge stack of books read and millions of keystrokes, long hours of frustration. Web is a horrible place to target: there are many server platforms, many types of clients and many types of browsers; all with different capabilities. Of course there is a common denominator that applies to everything that could be possibly made to work. But in the IT industry of 21st century, competitive products and development are key to success. In the end, what you have at hand will be forced to work, brutally.
So the highest ranking challenges zealots face with are probably little visual issues caused by subtle differences in CSS behavior in those two browsers.
They don't know or they just ignore the fact that Microsoft has a permanent chair in W3C. They don't know how web has evolved since 1980. They don't know about browser wars. They don't know about backwards compatibility in software products. Hell, they don't know about software.
I'm most angry for free software zealots. They are spiritual users, yet they completely ignore the philosophy behind free software. It's the free and honest collaboration that makes free software a real success. A bunch of users complaining about something broken is not going to convince a hacker to fix the problem. A detailed bug report, some time spent fixing the issue or a patch -- even a simplest one, at least an attempt, a sign of working brain cells would work perfectly. No screenshots please, we'd love to see people spend some time investigating the problem and report the bug as detailed as possible. We'd love to see that done honestly: a demanding user will more likely be just ignored. Please see Simon Tatham's article on reporting bugs effectively, it's a very good start.
Personally I develop for Firefox and then port to Microsoft Internet Explorer, but it's a matter of taste. Now this would surprise zealots I guess because most of them believe that if you make it work for Firefox it's guaranteed to work on IE too -- which is wrong most of the time. Achieving browser compatibility can be costly and involves extensive testing. It's not surprising for me to see people rely on a single platform, because that costs less. Anyone would go for the cheapest that could possibly work.
In the past years developing cross-browser rich web applications (including Ajax sites) was very frustrating because it was hard to find the experience and exact list of differences between browsers. The browser almost dominating the web client market being proprietary software, it gets even more complex. What you have is a very large, hard to read and comprehend but extensive documentation source called Microsoft Developer Network; and a very large source code of Mozilla's Gecko Rendering Engine (GRE) with much less documentation that you have to compare to each other.
Fortunately someone else has done it. Mozilla Developer Site hosts a document that help developers understand those differences that cause incompatibilities on the web.
Some more people have developed toolkits like Prototype, Dojo and Mochikit that provide a stable ground where rich web applications can be built on. These toys handle web compatibility issues for you. But this stuff is very new to the industry, and it takes time for web developers to get used to these. Until then, lets hope that articles like this would make zealots complain less.