The Web/Desktop Divide
I love the idea of being able to get to my data from anywhere. The web does this well. I love responsive, powerfully advanced interfaces. Desktop does this well. There’s got to be some way to balance this.
I use web applications. I design web applications. I even architect, program, and support web applications. Building your application on the web creates an open platform, ease of upgrade rollouts, and easy access from anywhere, amongst other things. But as we begin to create more and more complicated applications, I have to believe there’s a better way to use them then a web browser.
For Example
I’ve designed and implemented a few webmail interfaces. I can’t bring myself to use any webmail client, even my own. They just don’t work like they should. Things as simple as dragging a list of 25 messages into a folder are a staple of desktop software, and it brings webmail systems to their knees. Why can’t we program this most basic of interactions on the web easily, and with excellent performance? Here’s your answer: the web browser.
Possible Issues
When it comes down to it, today’s modern web browsers are trying to be, amongst many other things, an operating system. Your computers operating system, be it OS X, Windows, Linux, or whatever, is an application. It’s an application that runs other applications. With web applications running in a browser, now we’re running an application inside an application, inside another application.
While this in itself might be an issue, I believe the real problem comes from the basic understanding that web browsers simply aren’t designed to handle this advanced desktop-like behavior. For behavior in a browser, we have JavaScript. I find JavaScript is simply insufficient for application-like advanced behavior. Perhaps it will catch up in the future, or maybe I’m just not good enough at writing efficient JavaScript, but in my mind, there’s got to be something better.
Solutions
I’m going to propose just a few ideas here, none of which I’m sure will work, nor am I smart enough to implement them. But at the risk of complaining without suggesting, I’m going to throw them out there.
- Make desktop software share data in a standard way. If there’s a way I could get Things to post my changes online, and also provide me an online interface where I could get to my list or edit my list in a pinch on my phone, that would be the best of both worlds, as they exist today. This doesn’t seem to be the most effective solution, as it requires software developers to write desktop versions, as well as online versions. Most can’t even get one of those right, let alone both.
- Improve the web browser. There’s got to be a better way to get application-like behavior out of a browser. This solution, however, seems to put most of the weight on the browser-makers, and most of them are already having trouble keeping up with the fast-pace of advancing technology.
- Invent a ‘browser’ meant for applications. While the most radical solution, I think this provides the best end-result. Perhaps an application that reads XML, formulates a basic interface by default, and has ways (XSLT?) to alter the style, and some other built in functionality to add behavior. Not website-like behavior, I’m talking desktop-like behavior. Now I can imagine that if this was an easy task, somebody would have done it already. And perhaps things exist out there and I just don’t know it.
Wrapping Up
This may be more of a rant than I wanted it to be, but it’s something that keeps bugging me. For now I’ll keep writing, designing, and architecting web applications because I believe in their benefit. I’ll keep using desktop software for many things because it provides a more functional interface. But that doesn’t mean I can’t dream of the day I can have both in the same application.
Post and Author Info.
Published January 10, 2008 by:
Commenting is currently off for this post.
So far there are 11 comments.

I have to agree. Your article inspired a thought: what about a browser “mode” for applications – >a browser might recognize an application and go into “application mode”. Thanks for the post.
January 10th, 2008
I think that you make a great point. There have been times when I use web applications and want to be able to run them on my desktop. I think that one point to make is that Tumblr goes a great job of extending their service. With a simple toolbar bookmark you are able to quickly grab content from a site and post it to your own site. This method allows for a more flexible and versatile method for me to manage post and content.
January 10th, 2008
Maybe you mean something like XUL? Sometimes it’s a bit of a pita, though… Firefox itself (and its extensions), Thunderbird or Songbird, for example, are build with XUL. Also, there is AIR, which kinda does the opposite of what you describes to make pseudo desktop apps.
January 10th, 2008
You should really check out the flex framework. The new Tamarin VM built into Flash Player 9 sounds like the peformance that you are dreaming of. With mxml and stylesheets development is really easy to ramp up on. There are also a lot of features built into the flex framework to support things like SEO, Deep linking, and accessibility.
January 10th, 2008
@Cameron: When you talk about flex and desktop app like behavior you must check out buzzword (http://about.buzzword.com/).
Self they say it is “the first real word processor for the web”. If you agree or not i looks like it brings the desktop experience to you webbrowser. It is flash so the dragging and dropping Steve talks about is no problem. And on the other side it gives you a online document list that you can go to from every where. And it is cross platform compatibel.
The only bit of a disapointment for me reight now is that is dousn’t totally supports my opera browser.
Adobe AIR is also rather intersting however i think for the best experience flex is there also the best Choice.
January 10th, 2008
I’ve been thinking the very same thing lately. Web applications simply cannot compete with desktop applications at this point in time. I suspect (like you) one of the main reasons is that browsers and specifically their JavaScript engines are simply no match for Cocoa and C++.
Online synchronization for desktop applications would be fantastic. I just wonder how difficult it would be to implement for applications like the now indispensable Things.
January 10th, 2008
As fas as I can see the only way a browser is going to act like a OS (at this stage) is if it uses a 3rd party tool like Flash or Silverlight. Though as mentioned above we could start using XUL.
Then there is tech like Google Gears and Adobe Air – they seem like they might be able to bring the web closer to the offline world of desktop.
January 10th, 2008
I realise this might not quite be what you’re getting at but Fluid lets you put Web Apps on your desktop. Worth checking out.
The best half-way house I’ve found is syncing Gmail with Mail via IMAP. It gives me the best of both worlds – a top Web app to check my email from anywhere and a fully functional desktop app for when I’m at home.
January 11th, 2008
@Sam Rayner, that Fluid looks a lot like Mozzila’s Prims what is based on firefox. Prims works also on windows.
And when you are on mac os x You may like the mailplane app for you gmail.
January 13th, 2008
believe the real problem comes from the basic understanding that web browsers simply aren’t designed to handle this advanced desktop-like behavior[...]The three solutions that are suggested in this article are thought provoking. My best guess is that for the above suggested products (that are on the market now), Fluid and Mozzila’s Prims are worth checking out. I will come back soon, to see if you could find a real solution for this issue.
January 23rd, 2008
As Cameron said, the flex framework might be of some help here.
February 7th, 2008