Hacker News new | ask | show | jobs
by mkmcdonald 5120 days ago
Ah; browser elitism continues to pervade the web platform. Perhaps one day developers will realize how to develop working pages for static, decade-old browsers. It's not as hard as bloggers evangelize it to be.

HTML and CSS gracefully degrade. Host objects (DOM, etc.) require some care, but can degrade as well.

On an open platform with open software, we continue to punish and castigate users for their choice (or lack thereof) of environment. How infuriating is it for a user that's stuck on IE < 8 at work because of paranoid sysadmins?

Moreover, version detection is moronic. Twitter does this by banishing IE 6 users to a "mobile site" because the "desktop site" is poorly written. Browsing in IE 5 yields a broken version of the "desktop site" (CSS and all).

5 comments

> HTML and CSS gracefully degrade.

No. Not when the targetted browser has bugs, or implements half the properties used for a given technique and not the other half. When a button is hidden and its replacement can't display the degradation is not graceful, when elements are all over the page because positioning doesn't work correctly the degradation is not graceful, when activating buttons doesn't even work because you happened to use an attribute or a property the browser doesn't like the degradation is not graceful, and when the browser just throws or crashes altogether because you accessed a js property the degradation is not graceful.

And that's just user-facing, Kogan notes that their issue is cost, and the cost of supporting IE6 and IE7 is huge not just because their engines are gigantic piles of shit full of bugs and incorrect behaviors but because they don't even provide the tools to debug them.

Supporting anything is possible, the problem is the cost sunk into it for the complete absence of a return on investment.

It's not browser elitism, it's just the facts. No reasonable person is arguing that IE7 is the best browser - it's old, out of date and works poorly and there are plenty of good free browsers to choose from so why not just use one of them.

Also, where does it end? Should we still support Netscape or IE6 just because users have the right to choose to use old browsers? There has to be a limit to the support for older technology and IE7 has reached that limit.

It cuts both ways, sure you can choose to use IE7 but also I can choose not to support it, if that loses customers then so be it, if it gets them to upgrade it has done both them and the internet a service.

Spoken like someone who has never had to spend hours and days toying with a single design element to get it to work in older versions of IE.

HasLayout?

BoxModel?

These are not things that allow for "graceful degradation"

These things are horrible aberrations birthed forth from hells bowels designed to destroy any chance of having a single, concise, clear approach to CSS and HTML when trying to be backwards compatible.

I'm sorry, but it's time for browsers of a certain age to die off. There is no elitism here; Newer browsers are irrefutably better in every way than the old dregs of IEs growing pains.

Too many man hours are wasted on trying to get things to work in these old browsers, and it simply is not worth it.

This isn't elitism, it's sanity.

> HTML and CSS gracefully degrade.

I've seen this sentiment tossed around a few times now. I guess it's valid as long as (a) You're not working to strict wireframes, or (b) You are, but you don't have deadlines

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.
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.