views:

2803

answers:

18

In the company I'm working for, it seems that all of a sudden all of our applications need to be ported to web applications. For as far as I can understand, the only reason is that the web application hype has finally contaminated some of our decision makers.

I am a fan of desktop applications because they are more user friendly. In my opinion, they are more responsive, have better user interfaces, are more customizeable and have better keyboard support. I just cannot see myself using web versions of Visual Studio or OpenOffice. Furthermore, I have the impression thin client desktop applications are easier to implement than their web-app counterparts.

Maybe I am overlooking some qualities of web applications, and maybe I am incorrect about the drawbacks I mentioned above. Therefore my question: is there anyone who can see advantages of web applications over desktop applications?

Update: So far, there came some interesting responses. Please note however that I am not talking about the difference between a thin and fat client application, but only between developing for a webbrowser platform versus a desktop platform.

Update: by "web application" I mean the combination HTML/CSS/JavaScript, not rich internet applications such as Silverlight. These are very similar to desktop applications, the main difference being the fact that they run in a sandbox.

+9  A: 
  • All users always uses the latest version
  • No piracy
  • Accessible from wherever your users are
  • Cross platform
  • No installation required for the users
  • You can easily measure what your users are doing (how many are using feature XX etc)
  • You can provide easy collaboration between your users if necessary, as all data are centralized
truppo
"users always uses the latest version": Our desktop app auto-updates itself.
Dimitri C.
"No piracy": A thin client desktop app can be freely copied, as long as the server component is not distributed.
Dimitri C.
"Cross platform": Java desktop apps are cross platform also.
Dimitri C.
Installation is sometimes required, like to set up database tables, config files etc
Marc Towler
@Dimitri, I never said that desktop apps cannot do the things on my list..but in a web app you get it for free.
truppo
"all data are centralized": If you choose to write a thin client desktop app, you get the same advantage.
Dimitri C.
What if the application is not thin? Is the comparison between "thin" desktop applications and web applications?
rahul
Installation not required -- What about installation requirements of flash, applets and ADO in our webpage
Xinus
+20  A: 
  1. Web applications avoid the burden in deploying in each client machine.

  2. Don't have to enforce version check in client machine.

  3. Updates are easier.

  4. Makes bug fixes easier.

  5. No administrator rights checking.

  6. Can access from anywhere.

  7. Platform independent.

  8. Support and maintenance are easier.

  9. Adaptability in mobile applications.

rahul
Is point 2 that big an advantage?
Dimitri C.
"Makes bug fixes easier": how do you mean? A thin client desktop application can be updated equally easy, I'd think.
Dimitri C.
Platform independent, but sometimes browser dependent :)
Canavar
What if the number of clients is too large? Each one have to get updated. I think it would be better to update one.
rahul
Is the comparison between "thin" desktop applications and web applications?
rahul
"Can access from anywhere." - That's assuming you are connected to the internet... I think this is one of the *huge* drawbacks of web applications. With desktop applications, once they're installed on your computer, you can access them *anytime* you have your computer with you. Not so with web apps. And we haven't yet even mentioned connection speeds...
Steve Harrison
To 1.: It's not a burden in times of the internet and convinientinstallers To 3.: Problem can easily be solved for desktop applications (check, ask user, install) if connected to the internet.To 4.: Depends on the bug... If you built a high-end web application enabling desktop standards like drag'n drop and others with java script, the fixing can be really nasty.To 7.: NO! There is even more platform dependency: "Browser on OS"
Kai
@Canavar if its internal App to Web App then you can usually guarantee IT control the browser + version.Thanks to JS libraries coding for multiple browsers isnt that difficult. Coding CSS for everything past IE6 isn't that difficult anyway if your a good enough web-designer/developer.
Chris M
To 1: If you use javascript in your web application then you are effectively deploying code to the client machine. It is transparent to the user but you are still doing it. Desktop deployment technologies are starting to get close to this level of seamlessness.
Darrel Miller
+1  A: 

These days with people opting for linux/osx/windows platform independence is a big feature. This helps target a much larger market

There are of course the obvious advantages that the application can be used anywhere in the world... for convenience

Don't web applications have to deal equally well with portability issues (between Internet Explorer and Firefox for example)?
Dimitri C.
you can limit user to use only firefox since it is for internal company ( i did that .. so that i always recommends my user to use firefox or chrome)
nightingale2k1
+3  A: 

Pro's of a web app over desktop app:-

  • Only one copy of a program will ever need to be updated.
  • 99% of the code is platform independant.
  • maintainance, support and patches are easier to provide
  • Less chance of finding restrictions that the clients computer may have imposed
  • Plus many more

Con's of a web app over desktop app:-

  • If network connectivity is down, so is the app

  • Need to learn multiple languages to successfully develop an application (server side scripting, SQL, XHTML/CSS etc)

  • Less need for security (user's are trusted in the company, no "outside threat")
  • Need of a dedicated machine(s) for webserver

All of this is just a few of the many pro's and con's that you can find in this conversation

Marc Towler
+1  A: 

Most of the time user needs only a browser to use your application. No need to deploy all the stuff application needs, and no need to think about why your application doesn't work on a client.

Canavar
+20  A: 

Desktop applications give a far superior user experience than web applications.

Sure every option has its pros and cons, but you need to rate these as well. Which is more important to you, user experience or platform independence? We rate user experience above many things. Yes we are making sacrifices, but that's part of life.

One way to convince your superiors is to prove to them that the user experience is lightyears ahead on a desktop application and try to convince them to create a desktop application before making the web application.

We have both at our company and our customers prefer the desktop app over the web app any day. They're quite willing to accept any disadvantages that comes with using a desktop application.

I'm not listing the advantages of a web app in my answer as others have done. Web apps and desktop apps both have pros and cons. Do both! Let your customer choose. Get back to me on the statistics. ;-)

Maltrap
i think that this is a good idea, although quite a few companies would frown upon it solely because it is eating up more man hours +1
Marc Towler
Nice answer! Thanks.
Dimitri C.
If desktop applications are inherently superior, how do you explain that many people forward their mail from outlook/exchange to gmail?
Joeri Sebrechts
@Joeri The point of this answer is that both technologies have their place. Exchange email is a good example. At work I read my exchange mail using outlook and everywhere else I use the OWA web client.
Phillip Ngan
+1  A: 

i agree with the points above ...

i just want to add some pro on web app : 1. it looks nice. you can change the themes as well (just change the css) may be desktop app will looks boring to some user but wep app, you can change the themes/design and it will impress you user (and boss)

  1. it is cheaper to implements. For example, if you develop application with .NET you need to have clients that install windows. but in web application, once you develop, any client can access your web apps with any platform.

  2. web app development are simple (once you know about css javascript and framework) it can make your life easier.

  3. No virus and easy to deploy/install for client.

Cons: UI in web app are more complex and need ability in javascript and css stuff to make a good quality of UI.

I recommend you not to create from scratch (that would be pain) but build the new modules in web apps. that would be wise :)

nightingale2k1
No virus, but plenty of scope for worms, defacement and other exploits based on XSS, CSRF, SQL injection, and such like.
Noel Walters
+7  A: 

I've done a fair bit of development writing both rich desktop apps and web sites.

Generally writing code for a desktop app is easier, there are more controls available, you have much greater control over how the app works.

Writing web applications really requires you to understand HTML, CSS and Javascript, as well as the limitations (or bugs when talking about IE) of the browsers. You have to worry about state and persisting it, and the mechanisms available to you are limited.

Having said that, over time I find myself enjoying writing web applications more and more. The limitations of the the platform makes you simplify things, and the statelessness of the web helps manage some of the complexity. My last web project went live and the business required virtually no training because non technical people are now familiar with webpages and how they work. It is also great just to put a fix in and have it go live straight away. If you've ever worked with upgrading desktop apps you will no doubt know how complicated and painful it can be.

Recently we have had some success with a mixed strategy (webtop), writing the main system as a web site, but then providing a client side application for power users who need more features. This can either host a browser control (in windows you can embed IE easily, in OS X you can do the same with safari), or use an API. Much like how Twitter gives you a web version, but power users can use TweetDeck or whatever.

Dave Glassborow
Very interesting answer. Thanks a lot.
Dimitri C.
"upgrading desktop apps complicated and painful": I maintain the installer for one of our main apps. Making updates possible for large version jumps is indeed *very* hard. However, this is because it updates our full application. When we'd just need to update the thin client, this would be rather easy, I think.
Dimitri C.
Sure, I guess it depends on the type of desktop app. I spent way too much time yesterday trying to resolve a database upgrade bug that only effected a few clients ...
Dave Glassborow
A: 

All agree with the comments above.

the illusion of desktop app.s comparability is just a waste of time & being an ignorant about what future brings. web applications is a newer & better technology than desktop applications. 10 years ago nearly no1 was using web applications except some smart guy out there. because it was completely new & experimental. and there was not enough tools to develop better & professional web applications. With PHP4 & its competition, many conditions changed. we all needed to be update ourselves.

btw professional web applications can handle browser dependency problem. and there is a missing/ignoring point: you can ACCESS from ANYWHERE with any platform/browser. with SSL much more secure. i don't know any professional desktop app. with this feature.

[additive] it's obvious ignorance has no limit... try link below. http://answers.google.com/answers/threadview/id/747326.html

risyasin
+2  A: 

Both web and desktop platforms have their advantages and disadvantages. Good arguments can be made for both. Hybrid apps (part web, part desktop) also have advantages/disadvantages in this regard.

Application development should always be driven by requirements, not technology trends or religious prefs or comparative generalized advantages/disadvantages.

Ever try to sell a web app to folks in areas of the US or other countries where broadband access is spotty or non-existant? :) What about mobile access? Native, web-based, or hybrid? What about local access to data when there is no Internet connection, if it is required? Etc.

Start with the application requirement and work your way back to the technology. When you do that, you make the right decisions and end up with the best platform for the project at hand.

Example: Take the comment that reads, "Desktop applications give a far superior user experience than web applications." If the requirement (A) demands anywhere/anytime access from any computer equipped with a web browser and Internet access, and (B) also demands desktop-like performance (say, live database data that doesn't require page refreshes), then (C) the developer is led to consider technologies such as AJAX, Flash, Silverlight, Java, or even native clients that load as a browser control.

I'm just saying, again, be requirements driven, not technology driven.

RBLevin
+1  A: 

The main reason for developing an application into a web approach is that it is more accessible than if you would suppose to compare it to a desktop application, but when doing it so you should be well informed of what to use depending on your needs.

Web-applications are good only if you are just going to develop applications that doesn't pass extremely confidential data, due for the reason that web-applications are deployed online they are prone to hackers than if you would compare it to a desktop application, desktop application could reduce security risk than on a web-application though there are already security measures to make website secured, but over the duration of time people will discover ways of destructing this security measures and I do believe that most of use knew about that most especially those hardcore hackers existing over there. Desktop application do also have security flaws but so very minimal.

But if somebody is really eager to take web-application for providing solutions then it would be better if he is well informed of the risk it may take also the same thing for people developing desktop applications.

+4  A: 

A lot points are already mentioned. But there are a few i cannot totally agree with:

  • Deployment of a web application is easy, but deploying a desktop app isn't much more complicated in times of Microsoft ClickOnce or Java Web Start.
  • Bug fixing is a web application is not really easy (session less, running under web server process...).
  • A web application always has some limitations when it comes to executing security critical operations or accessing hardware.
Alexander
You are right to pick up on bug fixing as a problem rather than an advantage. There are so many variables possible with a web app. You may not even be able to reproduce the bug without exactly the same setup as the end user. Of course if you are deploying inside an organisation then this is more controllable, but then most of the other perceived advantages of web apps evaporate as well.
Noel Walters
+2  A: 

I'd like to nominate one advantage of web applications that is less commonly recognised. A well-designed web application usually integrates online help into the application - you don't find the usual clumsy division between the terse, incomprehensible desktop app and its verbose, disorganised help file. This is perhaps a cultural difference between web developers/designers and desktop developers.

MarkJ
+2  A: 

For me, who's normally completely web-based, the factor that swings me towards desktop apps is hardware integration. Web apps are great if all you need to do is read and submit data, but if it comes to interfacing with things like label printers, or other specialist hardware, a desktop app is the only real way to go. You can link these in with web services or the like if you absolutely have to have the "Web App" tick box ticked, but specialist hardware support is for the most part out of the realm of the browser, and it makes much more sense to use existing APIs to access it.

richsage
+1  A: 
  • Web applications do not require much processing requirement on client side as all the processing is happening on server side, browser is just the view part or the user interface.
  • It is easy to make changes to web applications observing the log information and user browsing patterns as every request reaches to server and can be logged.
Xinus
"Web applications do not require much processing requirement on client side": It is perfectly possible to write a thin client desktop application also.
Dimitri C.
+2  A: 

i am also an admirer of desktop applications. Let me quote few more disadvantages of web applications:

  1. Developing a web applications presentation logic/UI is too difficult compared to desktop applications.
  2. User experience in different browsers could vary.
  3. Delayed operations: consider same transactions in web and desktops. Web application may hold the delay of seeking the web server which is higher considered to desktop applications (in most cases)
  4. Client's CPU utilization: Though this may be considered as a disadvantage of desktop apps, web app does not hold good capability in utilizing client side processor which can be considered in some cases to level the total processing work load among client/server.
Jobin
+2  A: 

You are right about those advantages that you listed for desktop applications and there are even more that you forgot to mention (such as security, maintenance etc.) The main advantage of web applications is the fact that it can be consumed via a web browser from practically anywhere.

Visual WebGui is a solution aiming exactly at this as it allows to develop desktop (Windows) applications and run them as web applications so you can still enjoy the advantages of desktop development & deployment (intuitive, responsive, user friendly) and at the same time enjoy the accessibility of web applications.

Take a look, it might save you a lot of time and hassle.

+2  A: 

Depends of the type of the application. If you have cms application than it cannot be replaced with web (at least some parts) because the application needs to work with local resources like printer, bar code reader, fiscal printer, display and so on.
So, for this type of applications that needs local resources, desktop cannot be replaced.
Also desktop apps can be very faster than web, for cms applications.

Imagine a big supermarket with a lot of customers waiting to pay their orders and paying windows with web applications. I have not seen such thing.

But also there are web frameworks like Oracle ADF that have even more reach than desktop assp. With ADF you can build web app identical to desktop app, in a way similar to the way the desktop apps are build. But is it expensive, learning curve is high and requires "good" hardware.

But keep in mind that if for web you are not using tested components java script is not so good for mission critical apps, it is error prone.

darko petreski