The Web is Not Platform Independent
There was a time when you wrote a web site and you targeted IE6.
That time has long passed.
When you really only had to target IE6, you could pretend the web was platform independent.
The truth is now the web is neither, nor will ever be platform independent. It?s just an illusion based on the simple notion that browsers basically just render HTML.
How many platforms are there then?
This is a surprisingly difficult question to answer.
Back before the web really took off there were basically 3 platforms to develop an app for: Windows; Unix/Linux; and Mac.
When we answer this question for the web, really we have to look at browsers as if they are the operating system. Since the same browser exists on multiple base OS?s but could be different, we have to count each combination of browser and OS as a potentially separate version.
Windows: IE6, IE7, IE8, IE9 (beta), Firefox, Chrome, Safari
OSX: IE, Firefox, Safari (more?)
Linux: Firefox, Chrome
iPad, iPhone: Safari
I don?t have nearly every combination listed, but this is what I would consider a good coverage for any kind of public facing website.
Oh, don?t forget to cross this again with localization and globalization, because you might have a localization problem that only happens in a certain language in a certain browser on a certain OS.
Not just rendering level differences
It is also very interesting to consider that a web developer now has to consider how their site will not just render, but be used on a mobile platform.
Consider how Google released an iPad version of Gmail. And although, you may not really care if your site works on an iPhone or an Android phone, you probably should start caring about how it works on tablets like the iPad, because that market is only growing.
If you have a website that doesn?t work on someone?s iPad when they are shopping online, do you think they will get up, go turn on the computer, and go to your site to make the purchase or they will buy from a different site with a few touches?
With a phone size resolution, the considerations are even more important.
Tools help me make the web platform independent
So even if we could get parts of our development to be mostly platform independent, we would still need to test on all of the major platforms, because we could not rely on the platform independence.
Now, don?t get me wrong here. I love JQuery. It makes the job of a web developer so much easier. But, there is an important distinction. APIs and libraries like JQuery make it easier to write platform independent web code, but they don?t make our code platform independent.
What does all this mean?
We?ve gotten to the point where the most platform independent technology you can use is either Flash or Silverlight.
I?m not sure if this is the future of development, but it very well might be.
One important point to draw from this realization is that we shouldn?t necessarily choose to make our application a web application, because we need it to be platform independent. It seems like about 5 years ago, the web became the default choice, because it was better to have platform independence than a rich UI.
Hopefully, for the sake of web developers some of these paths die off or converge, or that standards compliance becomes so good that you could really write code for one browser and expect it to work on all the others.