Lead, Follow, or Get Off the Internet
First things first: I was at WordCamp Kansas City this weekend where I listened to several very good presentations, and gave two presentations myself. I was generally very pleased with the developer track, which was where I lived. Without a doubt the worst presentation in the developer track all weekend was mine on widgets. Not enough topic to discuss, last session of the day, and following a very passionate speaker. What can you do?
With that said: Rant On.
Two of the best presentations had asides where they spoke about working to deliver your content and code to the lowest common denominator of users. Clint Andrew Hall came down on the side of making everything available to everyone, while Kevin Potts took the opposite opinion (acknowledging, of course, that your customers may disagree and their opinion really counts). Paying customers want what they want, and any sane consultant will give them what they’re wanting to pay for. I get it, and I practice that. With that said:
Why in the world would any project dedicate man hours to supporting old crap? Let’s take PHP4 as an example. PHP5 has been out since 2004. Every major Linux distribution has been packaging PHP5 as the default for years. I don’t know of a single reputable hosting provider that is still running PHP4. There is no reason in the world why we should have serious discussions about maintaining compatibility to PHP4. There is no excuse other than laziness to still be on PHP4, and are we as developers going to work harder so that a handful of lazy admins don’t have to upgrade one set of packages? Not in my world. My Recently Popular WordPress plugin is not backwards compatible. Thankfully WordPress itself has given up and as of 3.2 you’ll be required to have PHP5. Other projects are coming around as well.
Should we immediately drop support for WidgetSoft 8 the day WidgetsSoft 9 comes out? Of course not. I don’t like being on the upgraded treadmill any more than the next guy. But if WidgetSoft 9 has proven itself stable for a year and is a free upgrade then in my book version 8′s days are numbered, and that number is very small.
The same holds true for web front end work. Clint maintained that we should all do the extra legwork to ensure that our users get a native and acceptable experience on their own browser version and device. Kevin’s point was much more a “screw the guy with the old browser, we all know we’re talking about some guy on IE6″ approach. In this case I think there’s a happy middle ground. Delivering a native user interface for the iPhone if a lot of your viewers will be on iPhone makes sense. Spending the time building an iPhone specific skin if you have no idea how many of your users will be on an iPhone is a colossal waste of effort. (Note: I don’t believe Clint was saying to do this)
I do have a philosophical problem supporting older browsers, though. People who are running older, un-patched browsers aren’t just affecting themselves. The viruses, trojans, and other nasties they acquire wind up sending spam to the rest of us, or letting their computer act as a node in a DDoS attack, or getting their bank accounts hacked and costing us all money during the ensuing legal battles, or any number of other problems. These people have proven they’re too lazy to upgrade, but for the sake of everyone else on the Internet they need to be put in a position where the pain of not upgrading is worse than the pain of upgrading. Google recently announced that they would only support the current version minus one for any given browser. The major browsers are all beginning to implement a background upgrade process that doesn’t require the user to do anything, and I think that is a fantastic idea.
Phew. Rant off.