Graceful degradation outside of web applications: how significant is the problem?

Sorry for the long introduction - just try to set the scene accordingly to avoid ambiguity and confusion.

Web applications have grown because they were non-hosted browser-based interfaces for server logic, to be completely browser-based applications with minimal need for server logic. This evolution can be described by identifying clear generations of web applications.

Let's just look at just two generations at the moment: pre- and post-ajax. Of course, there are other factors, such as those related to CSS support and access control headers, but let them start simply.

Starting with a simple, non-JavaScript-style system, adding layers of elegantly degrading enhancements and ending with an updated, highly sensitive modern application is a complex and error-prone task. This is far from easy.

Depending on which generation may appear in the web application, it depends on how you access the application. The same web application appears to be a first-generation application if it can be obtained through Lynx and the latest generation application when accessed through FireFox 3.1 with several levels between them, depending on the user agent used to access the application.

The problem of creating a web application that gracefully worsens depending on the capabilities of the user agent, when something created to use existing browser functions will return to the functionality of something created maybe fifteen years ago when it comes across Lynx, is very difficult.

I can’t imagine that a desktop application would encounter such dispersion in the operating environment.

One executable file (as opposed to a set of options specific to the OS) that can take advantage of Vista can very well cope with the situation when working under XP and in the absence of certain Vista features. To degrade at a comparable distance as a web application, the same desktop application should still function, albeit less fancifully, when run in a command-line environment such as DOS.

Run it under Lynx, this is the first generation web application. Launch the same FireFox 3.1, this is a fashionable, brilliant modern web application. If you encountered such a problem, you would find it difficult, complex, but doable.

Run it under DOS, this is a command line application. Launch it also under Vista, it is a fashionable, brilliant modern web application. If you encountered such a problem, you would consider it insane. Or you?

Do desktop applications ever have such wide differences in operating environments as web applications can?

Is this problem (the breadth of variance, not the variance itself) unique to the web application domain, or can it be found in desktop development?

+6
progressive-enhancement graceful-degradation
source share
3 answers

Desktop applications do not have the same problems that web applications have in this regard. They usually run on one well-defined platform.

This may change in the future. Computers are moving from desktop computers to mobile phones and small laptops. Desktop applications will need to run on a wider range of platforms in the future. This can cause problems because most of the frameworks we use to develop desktop applications handle this even worse than the framework for web applications.

+1
source share

I can’t imagine that a desktop application would encounter such dispersion in the operating environment.

Desktop applications must deal with deviations of a completely different type. The graphics cards in games are a good example: you need decent support for the main customers, but your upscale customer with a shiny new graphics card wants to run for their money. When you enter the processing area on the GPU and memory management on the card, you will have enough reasons to curse the variance in operating environments.

You also deal with more processor and storage devices than a web application, so you will also have to take this into account. And I'm not even talking about the operability of the operating system (which many desktop programs handle very elegantly).

Of course, nothing prevents the desktop software publisher from setting strict criteria in the environment. This is just a matter of business. But nothing forces you to support third-party browsers (and most web applications do support Lynx?!?).

+1
source share

In the application and operating system (OS) areas, the problem is usually reversed. It is the OS that does all the complexity of maintaining compatibility. On the other hand, an application usually dictates a minimal OS version.

Another place where applications begin to see this problem is the Java world and, to a lesser extent, all other so-called script langages that run on multiple operating systems.

0
source share

All Articles