Hacker News new | ask | show | jobs
by billpatrianakos 5120 days ago
While you may be right about browser elitism your tone suggests coder elitism. Yeah, we can often allow sites to degrade gracefully but the old web is dying. The days of static sites are almost totally behind us. We're entering a new era in development and sometimes supporting those old browsers is more trouble than it's worth. Penalizing users of older browsers gives them incentive to upgrade. It really is a win win situation. They get a better experience and we get another user. We can't support these old browsers forever. Ten years doesn't sound like much but on the web it's a lifetime. It's like suggesting reserving one lane of our highways for horse and buggies.
1 comments

I realize that a certain line must be drawn. However, a large subset of browsers can still be supported. I've found that I can support scripted pages until IE 4, wherein `throw` and `try/catch` are not supported. Niceties such as `Object.prototype.hasOwnProperty` and `Function.prototype.call` were introduced in IE 6⁰, so I can accept complaints about IE 5. A SyntaxError followed by a termination of script seem acceptable in that case.

However, HTML and CSS should degrade fine in old browsers. I have no problems with presenting an acceptable page in IE 6 or Opera 5, even with their quirky float handling. We just don't work hard enough.

⁰ JScript version 5.5, which is implemented in IE 5.5 introduced these. Verson 5.6 was implemented in IE 6.

I disagree that it's an issue of simply not working hard enough. The reality is that it's an issue of opportunity costs: There are only so many hours in a day, and every hour you spend on backwards compatibility is an hour that could have been spent on something else. Naturally, as time passes and the older browsers get older (i.e. less popular and harder to develop for), people are going to see less value in supporting then in lieu of the alternative ways they can spend their development efforts.
Backwards compatibility isn't a proper way of describing what I do.

Graceful degradation is the proper description. In short, scripts can degrade by testing for the existence of a property (e.g. `Array.prototype.push`) and ignoring the property if it does not exist.

I'll be posting a large project here soon that should clarify the strategy. Stay tuned.

We just don't work hard enough.

There are 24 hours in a day, and some smaller number usable for working. What percentage of them should I spend making cool stuff, and what percentage should I spend making sure that cool stuff works in six (IE7), eleven (IE6) or twelve (Opera 5) year old browsers that only a tiny percentage of potential users use?

Spend some weekends reading up on feature detection[0] and documented "bugs" (read: expected behavior) on MSDN. The time I've spent on both has transformed my perspective as a developer.

We really don't work hard enough because we decry the DOM and blame Microsoft for problems research can and will solve.

[0]: http://peter.michaux.ca/articles/feature-detection-state-of-...

I'm pretty sure I read that article around the time it came out. Looks familiar, anyway.

It doesn't have anything to do with my point, which is about opportunity costs. I have a finite amount of time, money and other resources. Why should I spend them making sure old browsers used by a small number of the lest sophisticated users work instead of building features?

100% cool stuff, 0% old browsers!
If it wasn't readily apparent how little you "got it" before this post, saying "We just don't work hard enough" destroys any credibility you may have here.

Sorry, but there's a difference between "working hard" to make sure your site looks good and functions across as many browsers as you can, and wasting hours of your valuable time that could be better spent elsewhere, trying to get older versions of IE to show things properly without damaging all the other browsers.

I don't write a single line of code that caters to one browser. This is where so many people miss the mark on understanding how I develop.

I test browsers in my spare time to discover how to degrade for them. I don't "bend them to my will"; I just use standards-compliant development with proper feature detection.

I think we work very hard. You seem to be wrangling old browsers into submission for sport. And that's fine but time is money and we don't have time for all that work for so few users. Thank god for these big guys who are pushing users of old browsers to upgrade. They're sparing the rest of us from not only being the bad guy but from having to do all that extra work. I can see some sites maybe being able to put the effort in to support ancient browsers but then you went after Twitter and I think that's where your argument suffers. First off, Twitter users know what the term "social network" means. Users of IE6 and below will probably never visit such a thing because their browser choice totally gives away their demographic. Beyond that, if Twitter were to cater to these older browsers they'd have a front end code base so bloated it'd rival their backend. Or the other option would be for them to do some graceful degradation work but since a lot of their current UI doesn't lend itself well to that (at least not as far back as you suggest they should) we'd be stuck with a poorer version of their UI which currently is really great! Sites moving toward being as responsive as a desktop app is such a great thing but it just can't be made to work in IE6 and under without bringing down everyone else's experience.
...how many users are you seeing on IE 5? IE 6, even? It sounds like a waste of time.
The objective of testing on older browsers is to break feature testing logic.

For example, Opera 6 has no DOM Core implementation. Ergo, I use it to test code that uses the DOM Core to observe graceful degradation. This enables the code to be "future-proof", or compatible with past, present and future browsers.