I posted a piece entitled Desktop applications are dead which attracted the following comment:
Web apps have plenty of cons too. You seem to only be looking to the Pros.
There’s something in it; though the article is a little more nuanced than its title. There’s also another debate to be had around the question of what a web application really is. If thousands of lines of JavaScript are executing on the client, is it a web app? If it is running in Flash or Silverlight is it a web app? If it is running out of browser (Adobe AIR, Silverlight, JavaFX) has it crossed the border to become a desktop app? This last case is particularly interesting, since although something like AIR should probably be categorised as desktop, its programming model is normally that of a web application with an offline cache.
The semantic discussion can distract from the real issues. The ascendancy of web applications has a lot to teach software developers. The enforced simplicity, even crudeness, in the user interface of early web applications brought some surprising benefits: users generally liked the minimalist approach and ease of navigation. The page model, intended for documents, turns out to work for applications as well.
Another big lesson: users value zero-install extremely highly. The routine of go to the web page – run the app is easy to understand. Some find it easier than finding an application shortcut in the Windows Start menu, and that is after the potentially painful business of running setup.
Still, I am slipping into reiterating the advantages of web apps. What about their cons? What about the pros of desktop applications?
I still use desktop applications a great deal: Microsoft Office, Live Writer, Foobar, Visual Studio, Eclipse, all the things I listed in 10 Mac alternatives to Windows utilities. Doesn’t that prove that desktop applications are still important?
It does; but there is an important qualification. None of these are line of business applications of the type which occupy so much of the time of corporate software developers and contractors.
The real point: if there is a discussion about whether a particular project should be implemented as a desktop or web application, it is not the web application advocates who need to make their case. Rather, it is the desktop advocates who need to show the particular reasons (which may be good ones) why only a traditional local install will do.
It is also important to follow the curve on the graph. The list of things that can only be done by desktop applications gets shorter with every upgrade to the web platform – whether you think of that as HTML/AJAX, Adobe Flash, Microsoft Silverlight, or [insert your favourite web technology].
Ten years ago, a web version of Photoshop seemed an unlikely prospect. Today, here it is. Office and email is going the same way, even if it is not quite ready for all of us; Microsoft will have to accept that or lose its business.
I don’t follow Rich Internet Applications with such interest because they are cool, but because they are the future of the client – and increasingly the present as well.
“If thousands of lines of JavaScript are executing on the client, is it a web app?”
Nowadays I notice a lot more high abstractions like “web app”, “Web 2.0”, “SOA”, and huge amounts of argument about what they “really” are.
I believe this is just one symptom of the underlying problem: too many people are using such abstract terms just as if they were concrete (or Platonic ideals that they are able to see and touch).
If “web app” is a useful abstraction for practical purposes, then by all means employ it. You will find that all problems about what it “really means” have disappeared, though, as that is dictated by the purpose for which you coined the abstraction. If it isn’t useful, then ignore it.
Abstraction, like fire, government, and the banking sector, is a good servant but a bad master. By all means coin abstractions for specific purposes, and agree with others to share abstractions. But don’t act as if they were some kind of mysterious dinosaur stalking out there in the mist, occasionally being glimpsed by excited observers who return to tell the enthralled populace.
The only people who benefit much from the present situation, with vague misty abstractions being bandied about in a Babel-like state of confusion, are marketeers and the accountants whom they serve.
Stuff happening in the browser isn’t that interesting to me – much *more* interesting is where the line between web and desktop applications blur.
fwiw, the early distinction with “Rich Internet Applications” was that it wasn’t a pure “Web app” like ColdFusion where the logic occurred only on a server… RIAs added Flash’s clientside processing to ColdFusion’s serverside processing, to make something new.
But meanwhile there were whole numbers of Internet applications which were not Web applications, from email to news readers up through Shockwave Projectors and so on. Noble history on both sides.
Lots of online arguments are about defining labels. I look at whether something uses the network or not, whether it’s in a browser or not, whether it communicates with other machines or not, whether it requires the network or not… behavioral distinctions, rather than semantic distinctions. YMMV though.
jd/adobe
I think we need to also draw a distinction between web-based and web-delivered applications.
Applications developed with Silverlight, Air, etc. are downloaded (usually) as one single monolithic application. This is not that different from normal (installed) desktop applications and it does’t really share much of the advantages of web based applications.
A true web based application is something that executes mainly on a web server with only UI and simple validation on the client side. This is like a web page that is loaded one screen at a time. Unfortunately, HTML is not the most practical markup language for application development. One alternative is to use something like the OpenWAML markup.
The bottom line is that web-based apps are much more granular and extendable. My prediction is that in the long term, this model will eventually prove to be the more sustainable one.
I would like to introduce a different angle. The longevity of a business and its cost of implementing new technologies. From a desktop perspective, every couple of years, there seems to be a whole new technology that, in effect, requires a full (not incremental) rewrite of an application, which can be a huge cost to a company. For example, you had to completely rewrite your C++ app in .Net.
Web applications seem to allow you to incrementally embrace (or at least more resilient) technology without having a huge project to rewrite it. (There are obvious caveats around writing your entire app in Flash or AIR etc)
Adam… name one new technology in the past 9 years that would require a complete rewrite of a .Net app. G/L on that one cause there has been nothing in all the VB and C# revisions of .Net that would require a complete rewrite. Last big overhaul was movement from VB6/C++ to .Net. Just like asp to asp.net WHICH required a complete rewrite just as well.
BTW C++ to .Net would have happened back in 1999, not 2002,2003,2005,2008, or even 2010.
Desktop app, click once web deployment with auto update…where’s the problem…best of both worlds
I guess most people will use notepad for writing/reviewing text files even if there were a web alternative. why? simply because its so fast and simple to activate it – you don’t have to memorize web site address, type your log-in credentials etc just to write notes… the same goes for Microsoft’s office suite, image processing, video editing, development IDEs etc. Its simply more fun to work locally. what about all the iPhone, Android and other smart phones? we see a huge trend of smart phone applications. why people don’t write them as web applications? I guess for the very same reasons – you simply can’t use all of you machine hardware and built-in API from a web application.
I would say that every application which is launched from a URL is a web application even if it is downloading huge client side executable like in the case of flash or silverlight. One last thing – a few month ago my web hosting’s (a very big company) servers were down for 4 days!!! my 10 web sites were down, database didn’t work and email servers were very slow. they were able to fix the issue only after re-installing all the web servers from a 15 days old backup! this thought me that with all due respect – your data is safe only but only when you have it stored locally