Thursday, November 27. 2008
You may have noticed 'Use Firefox!' pictures on many websites. There's a story behind this which applies to me as well.
As a web developer, even when you only use Linux, you inevitably get frustrated by the enormous pool of problems caused by deliberate non-compliance of Microsoft's browser "Internet Explorer". Just like there are standards to drive on the right side of the road in one country (for people to drive safely), there are standards that ensure everyone that uses a web-browser can work reliably. But now we can't even afford to have differences between countries, since the internet is an inherently global network. While non-compliance of web-browser technology doesn't result in lives lost as directly as car safety standards, it is an enormous economic loss and makes the web a much less fun place than it could be. It is clear that if, for example, an office of a financial institution can't use e-mail for an entire day, this results in lost productivity. Imagine what it would mean if the browsing experience is limited for over a decade... Browser non-compliance is why websites often don't work well, despite extra effort of web-developers trying to get it to work mostly in the most important browsers, and most versions of them. It is not unwillingness of developers, things just become much more complex that they would need to be. When different versions react differently you have to add exceptions that run in one of the two browsers (within an if condition). But sometimes the amount of combinations of 'browsers times versions' becomes so big, that you cannot write exceptions anymore. This is when you need to start using a framework that abstracts away version issues. Essentially, you're adding extra software to reduce the complexity. This software can be written and improved by many people, since many sites can use it. It has even become quite sophisticated. This does not mean that it wasn't a responsibility of the browsers to conform to standards, so everybody can view the same content reliably. Also, learning a framework is like learning a new language, and more importantly unlearning the old way of doing things.
Many web developers use jquery (I do) or scriptaculous (I tried, too big for my purposes) to make up for the non-compliance to CSS in Internet Explorer. It only takes one browser (internet explorer) to ruin it for everyone, because we are all forced to design for it. When you know this, it becomes increasingly frustrating when you're mixing up 'the old' ways of doing with the new ways and finding out about the quirks of the new framework.
I'm now sure that I spend more than half the time of making a website on making it work in multiple browsers at the same time. Yet, when it works in Firefox, I'm can be pretty confident that it works in Google Chrome or Safari, since they adhere to standards much more than Internet Explorer. The few problems I have with those are pretty easy to fix or usually not even perceived by most web-visitors.
You can't really change the browser population much by asking people to download another browser. People are too lazy to change and that's the main reason why Internet Explorer has enjoyed a major market share for all this time. Facing reality, I'm now forced to start understanding jQuery and why it isn't behaving either... when really get stuck, I have to rewrite everything to scriptaculous I guess...
So thank you Microsoft for making web development a whole lot less fun (and elegant) and making the web a much more unreliable medium.
Display comments as (Linear | Threaded)