Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between progressive enhancement and graceful degradation?

I'm confused on what the difference is between progressive enhancement and graceful degradation. To me they seem like the same thing.

Can you please explain to me the differences between the two and in which situation I would use one over the other?

like image 525
zeckdude Avatar asked Mar 31 '10 04:03

zeckdude


People also ask

How would you define the difference between progressive enhancement and graceful degradation?

Progressive enhancement is a more sophisticated and at the same time stable way of assuring that but it takes more time and effort. Graceful degradation can be used more easily as a patch for an already existing product; it means harder maintenance later on, but requires less initial work.

What is the meaning of graceful degradation?

Graceful degradation is the ability of a computer, machine, electronic system or network to maintain limited functionality even when a large portion of it has been destroyed or rendered inoperative. The purpose of graceful degradation is to prevent catastrophic failure.

What is meant by progressive enhancement?

Progressive enhancement is a design philosophy that provides a baseline of essential content and functionality to as many users as possible, while delivering the best possible experience only to users of the most modern browsers that can run all the required code.

Which is an example of progressive enhancement?

Progressive enhancement is used in the front ends of MediaWiki-powered sites such as Wikipedia, as it is readable, navigable, and even editable using the basic HTML interface without styling or scripts, though is enhanced by such. For example, the wikitext editor's toolbar is loaded and operates through JavaScript.


2 Answers

They are almost exactly the same thing, but they differ in context.

There is a class of browsers called "A Grade Browsers". These are your typical audience members that (probably) make up the majority of your visitors. You'll start with a baseline of these users. Call this best modern practices.

If you want to enhance the experience for anyone happening to use Firefox 3.6 or Safari 4 or some other whizbang developer nightly WebKit what have you, you'll want to do awesome things like

  • rounded corners via CSS
  • shadowed text (but please god, not too much)
  • drop shadows (see above parenthetical)

These make your site kick-ass looking, but won't break it. This is progressive enhancement. Embracing the future from the point of best practices.

On the other hand, your niche Nintendo site attracts a fair number of Internet Explorer 5 users. Poor you, but you also want to make sure they keep coming back. You might provide an alternative to your Ajax behavior by including the Ajax script in an external file and if their JavaScript isn't turned on, maybe your links update the whole page. Etc. From the point of view of best modern practices, you're making sure that certain historical markets are being catered by some semblance of a functional site. This is graceful degradation.

They are mostly identical, but they differ in terms of priority for many development teams: progressive enhancement is quite nice if you have the time, but graceful degradation is often necessary.

like image 60
Alex Mcp Avatar answered Sep 28 '22 03:09

Alex Mcp


If your site looks equally good on all browsers, but certain browsers get, say, dancing ponies because they support dancing ponies, then that's progressive enhancement. It works in all browsers, but certain browsers get something extra. Usually that term is applied to certain JavaScript features that may enhance usability beyond "raw HTML".

If your site only looks the way you intend to on browsers that fully support, say, CSS 3, and Internet Explorer 8- will display the same page without, say, rounded corners, then that's graceful degradation. The site is really meant for state-of-the-art browsers, but it's still usable in older browsers, just not as fancy.

In the end, they're really the same thing, looked at from two different perspectives.

like image 24
deceze Avatar answered Sep 28 '22 01:09

deceze