The Kids Have It So Easy …
Firstly, to counter the somewhat curmudgeonly tone of the title, I am definitely not the oldest or most experienced web developer—I’ve only been in this industry for seven or eight years, five or six professionally. However, I do remember when many aspects of web development were far more difficult than they are now. I remember trying to track down randomly appearing content in Internet Explorer 5, (that’ll be HTML comments after a floating block element), and why we used @import to link to stylesheets, (so Netscape Navigator 4 didn’t try to interpret them). I even remember the level of work it would take to support non-Javascript users, because having it enabled was not nearly as prevalent as it is now. By comparison, with the resources and information available to developers and the relatively good browser support we have, today it is pretty easy to get designs to ‘work’ in even the most reviled browsers.
So why is it suddenly so fashionable to advise developers to drop browser support for certain, often non essential, features? To not use certain proprietary fixes because they aren’t valid? Worst of all, why is it okay to advocate that if a client doesn’t agree with your views, you should turn away their business or quit your job in protest? It seems to be that, as it has become easier to build sites, developers are more determined to keep their code clean, less inclined to implement fixes and, most importantly, happier to sacrifice a subset of users for technical benefits that only they will really understand. The industry is so close to being in a golden age of reliable rendering engines, support for exciting advancements in technology and the focus shifting from ‘making things work’ to ‘doing cool stuff’. Unfortunately, we are not quite there yet, and impatience seems to be increasing.
My first, major issue with these opinions and those who express them is that, as I referenced so wistfully above, browser support is nowhere near as difficult as it was even three years ago. So many nasty browsers have fallen by the way side and those that haven’t can be extended with great examples of ingenuity. In this light, dropping browser support so often smacks of laziness. Of course, if the portion of your audience using a certain platform is negligible, and your client is happy to sacrifice them, and there is economic value in doing so, go ahead. But every case is extremely unique, and these articles seem to forget that. There almost certainly isn’t economic value in shunning even 1% of your users because you have to use a proprietary filter over a valid CSS property, or an almost certainly pre-existing Javascript work-around. You are kidding yourself if anyone but you really cares.
The second, more important, issue that I have is how un-constructive this opinion of educating your clients or firing them can be. It used to be that developers would publish inventive workarounds and document bugs so that bugs could be more easily fixed. Now they are happy to advocate an approach that 99% of their audience cannot feasibly take. In the current economic climate, not many freelancers can afford to drop a client. More importantly the majority of developers won’t be freelancers, and they are never going to resign over having to implement a fix or support a platform they don’t like, (and if they did, their CV isn’t going to be worth much to future employers—I certainly wouldn’t have hired a developer likely to walk out if they didn’t get their own way).
I am absolutely in favour of using modern techniques to implement features that might not be supported in older browsers, I absolutely believe a website doesn’t have to look the same in every browser, and I am absolutely in favour of dropping features for browsers that don’t play nicely, if it is feasible and not to the detriment of the user. What I am not in favour of is this current trend of developers deciding what is ‘feasible’ and what is not, and resorting to deriding their customers, or worse, if their views are not shared.