There are more flavors of browsers out there than coffee choices at your local Starbucks. I may not be 100% correct on that statement, but toss in browsers resolutions and the different operating systems that people are viewing on and the numbers are quite close.
"Can I get a firefox 3.5 on OSX with my 1440 x 900 resolution to go?"
"My IE6 on windows xp is how much? 1024x768?"
"Do you have any fresh chromes? My Ubuntu loves them!"
Don’t get me started on odd browsers like NutScrape, Orca, Salamander, Skipstone, SkyKruzer, Kazehakase, Madfox, Arachne, Charon, Chimera, Dillo, Oregano, and Viola, just to name a few.
The great part about being tech-savvy is that we get to choose any of these options to which fit our preference at usually the great cost of nothing. The unfortunate part as a developer is that the end result can be drastically different for each and every single one of those choices. This endless set of possibilities can make for some very long nights and extra trips to the grocery store for Advil.
Don’t get me wrong, I’m a huge fan of competition. Competition is what drives innovation and sifts out the weak and allows for the stronger to survive. This holds true with cars, electronics, medicine and certainly in the web browser market. IE6 might still have a bigger market share if it wasn’t for Mozilla; what a dreaded world that would be.
As developers we love to be able to use the latest and greatest technology. Sometimes it’s embraced just for the cool/wow factor where as other situations it might be crucial in fixing an overdue bug. The inherit problem in wanting to use the latest tech, will always be the user base who doesn’t upgrade as quickly as us developers do. This immediately puts a halt on innovation if the user base greatly relies on their tech to interact with the product but the developers push newer tech towards it.
So where does this leave us? At any one time, a Front end Developer has to worry about four different versions of IE (6,7,8 and 9), three versions of Firefox (3.6.18, 5, 6), two versions of Chrome (12.0, 13) and a partridge in a pear tree. The common theme though, of the most current versions of these browsers, is that they are starting to embrace defined standards. Which is fantastic for our border-radius, multiple gradients, box-shadow, local storage, geolocation fans and the list goes on. A whole new world of possibilities and ideas can be opened up when this newer tech can be embraced, but only for those users who also utilize the technology that you’re developing for.
Being able to utilize these new features enables for faster, less bug prone cross browser development (when working in the latest version). So what happens to those who are getting left in the dust? Perhaps it’s best to have a balance of progressive enhancements while still maintaining some old practices to ensure a large demographic can still get a great experience on the site. The best enhancements come when the overall content isn’t affected across the different technologies used. I believe that it’s ok to embrace the use of border-radius, rgba, box-shadows etc, while maintaining the integrity of the content and without the use of alternate/conditional stylesheets. The users with older technology still get the same content, but not to the best experience it could be conceived in. I have an HDTV that gets an amazing picture, but it doesn’t have 3d abilities. The content of the show still comes across the same to me, but the experience in which I view it could potentially be better (certainly up for debate).
Hopefully the user will notice these subtle changes and it will push them to update. Sound familiar? The final push for TV to go completely digital, because the experience was better than analog sources should ring a bell. Or even the push to broadband from dialup, blu-ray from dvd, e-mail from regular mail and so forth. Progressive enhancement in web browsers should just be another notch in pushing new technology forward. There always comes a point where you just have to push past the threshold to embrace something better. Without people constantly pushing forward, there would be no progression and without progression, we might be stuck in a gif and blink tag world.