views:

825

answers:

19

Stackoverflow User Luke wrote in this answer:

The boundaries between desktop and web applications have really blurred. Whilst once upon a time the nature of developing for the web was totally different to developing for the desktop, nowadays you find the same concepts [...] cropping up in both.

Since I am continually looking to improve my existing web applications, I'd like to know which common features of "classic" desktop applications do most web application miss?

For example, most desktop apps prompt the user to save unsaved data leaving a page or closing a window - a feature that many web applications miss. It could be that some feature aren't even necessary or are compensated in some other way. Maybe there are features which can't be implemented in (a classic) web application?

+15  A: 

The thing you'll never be able to imitate in a web application is the low latency and instant feedback of a well written desktop app.

Even with the ajax techniques to load only parts of the pages, there usually is a noticeable delay in the response (or maybe it's just me and my narrowband). You're (for at least a few more years) just bound to the orders of magnitude of speed difference between network access and no network access.

Vinko Vrsalovic
+12  A: 

The Undo button.

innaM
Gmail has undo functionality.
RickL
It's like the end of the world to undo things. At least most browsers now have undo for text entry.
Darryl Hein
Stackoverflow even has undo functionality in certain areas.
scheibk
+2  A: 

Displaying application request/process status or messages on Taskbar or Status bar.

For the web, Javascript can be used to update text on status bar, but its not a common usage.

Nahom Tijnam
+4  A: 

Advanced graphics: I've written a C program that draws a surface joining Bézier patches in a simple window and I had to tweak it in unimaginable ways to get it to draw in a decent time. I can't imagine that being ported to the web.

I mean, doing advanced graphics is not what every application needs, but if displaying nontrivial pictures is slow, then we shouldn't even talk about animations.

Eduardo León
SVG and Canvas fill that gap somewhat.
Preston
WebKit supports CSS3 animations
GameFreak
I prefer to control my pixels directly.
Eduardo León
+6  A: 

For fairness is to mention, that desktop-applications miss a common feature of webapps: XSS (Cross-Site-Scripting). ;-)

Mnementh
Sorry, I couldn't resist.
Mnementh
+6  A: 

You can't pull the plug when the application hangs. (Yes, I'm serious)

koenig
+12  A: 

Right-click application-specific pop-up menus is the thing I've noticed most.

Usually right-clicking on a browser application will bring up the browser pop-up menu rather than an application-specific menu.

RickL
Not in a well-written web application (which are rare, 'though).
Joachim Sauer
It's kinda nice to have a standarded right click for most browser based functionality.
Darryl Hein
+2  A: 

The usability benefits of standard GUI elements that look and behave uniformly across applications.

(Although this will surely change as web app developers adopt certain GUI elements and patterns that are considered best-practice, notably by eventually using the same libraries, e.g. for drag-and-drop.)

Yang
+2  A: 

A common feature of "classic" desktop applications is the ability to work without an internet connection. I miss that in Web applications.

For example, MS word works without an internet connection, but you need to be connected if you want to use Google docs.

Of course, it does not matter if the application requires an internet connection anyway. For example, if its a feed reader, I have to connect to the internet, whether I use a desktop reader or an online reader.

Satish Motwani
Your point's understandable, but as an aside, most decent RSS feed readers do allow "offline viewing", in which you can download articles while you have a connection, and read them while you don't -- much like email.
mipadi
+1  A: 
  • Desktop integration (may change if we get online desktops)
  • Offline use (does exist but it is early days)
  • (Reliable) Responsiveness

Reliability generally (somewhat debatable as there are pros and cons - e.g. your data is probably better backed up online, however security generally is less in your control with an online app, and if the network connection fails an online app tends to freeze or fail horribly.)

frankodwyer
+8  A: 

Keyboard support on most web applications is weak to non-existent. This is getting better than it used to be but you will still find plenty of mainstream sites that can't even get the tab order to work correctly. Most sites don't handle focus correctly and force users to use the mouse to activate even the simplest of data entry forms. You can usually forget about accelerator key support.

BenR
Gmail does this exceedingly well, so it's definitely possible. Overall the DOM Level 2 Events specification cover most basic keyboard and mouse input control. Check it out.
John Leidegren
+1  A: 

The ComboBox is the most notable widget omission.

On the web, lack of desktop features such as popup dialogues is actually a boon, making for a simpler interaction experience. Think also of the autosave draft feature of Gmail vs. the desktop convention of prompting the user to save.

So consider carefully before trying to reconstruct that desktop feature in your web app.

EoghanM
+3  A: 
  • Support for Big Files.
  • Integration with the client OS.
  • Support for special Input/Ouput Devices.
  • 3D or anything else computationally intensive (specific to each users).
Loki
I'd back down on some of those claims with all the development in RIA web applications like Silverlight which can do 3D. We'll never see AAA 3D real-time games in Silverlight but browser are more and more resembling a virtual operating system.
John Leidegren
You have clearly never heard of WebGl
GameFreak
+1  A: 

Decent help. Seems to always be an afterthought, if it's even implemented...

Scott Evernden
Hm, strange. I thougth that would be a strength of web applications. You could implement HTML, flash tutorials etc...
splattne
+2  A: 

Drag and drop from Finder/Explorer into the web app. And vice-versa.

Barry Brown
+3  A: 

One Proper Macintosh menu bar support.

If you're a long-term Mac user, even with two large monitors, you have muscles that swoop to the top of the screen for actions, comfortable in the knowledge that the infinite depth effect will kick in and you can slide along that edge, picking from the menus.

No in-browser app can deliver that experience.

Two Command-keys, which is a side-effect of the menu bar not belonging to the app but goes a bit beyond that - good desktop apps have command-key shortcuts (accelerators to you Windows guys, I'm not just talking the Mnemonics which work with alt-key support). Great desktop apps show little reminders next to the buttons that have accelerators, when you hold down the appropriate modifier keys and wait a fraction of a second.

Three Smarter tables. There are a lot of apps where some kind of spreadsheet view works as a paradigm, including editing, sorting, resizing columns. I think I've seen some odd examples of partial support but a good table in a web app is still a bit of a dancing bear.

Four Used to be right-clicking but I'm finding more and more apps that do this properly, like Kerio's excellent webmail engine. It is still missing in enough web apps to be worth emphasizing.

Andy Dent
A: 

Blue Screen of Death

User
Yes, but there is the Yellow Screen of Death instead: http://en.wikipedia.org/wiki/File:ASPNET_YSOD.PNG
splattne
A: 

A task-specific UI with no extra controls. A web app, in addition to all the controls of the web app, also has back, next, bookmarks, etc buttons. You end up with an extra inch-high set of buttons that don't directly support the task at hand.

Bryan Oakley
A: 

This isn't necessarily a programming feature, but the audience of an application will be different. For a web application you are cutting out a complete segment of your audience (those with slow or no internet access). While this is a relatively low number, it is a difference between a desktop application and a web application.

scheibk