views:

555

answers:

14

I ask this because at work I am supposed to develop a web-application that is used in an intranet, by two people. It's an application that should keep some states in a workflow. So I have to keep data in a session and have to care about concurrency. It would be so much easier to develop a normal desktop-application. But the client was clear on this (I wished everything in the spec would be so clear): he wants a web application.

I know that many people don't want to install applications, but here are two users, and I'm able to install it on the computers of them.

So I want to know: What are the reasons, why webapps are so popular these days? Is it a hype and in two years the clients will demand more desktop-applications? Or is there something about webapps that makes them especially sexy/appealing?

+7  A: 

The top reasons IMO are

  1. They work from any internet connected computer, not just the one with the software installed.
  2. When there is an update, you just push it to the server and everybody gets the new version the next time they log in.
Andrew Van Slaars
Of course, the counter to that is that they typically give up the right to a rich UI and may be forced to use a specific browser they don't otherwise care to use, and they lose the freedom to choose for themselves when to upgrade.
Bryan Oakley
But with javascript UI working better every day with increased browser agnosticism, and standards making more and more browsers consistent, the rich UI is no-longer limited to the desktop.
cdeszaq
I disagree. I've yet to see a really rich web app UI that is every bit as usable as a desktop app, except in some very niche areas. There's latency issues, limited widgets and so on.
Bryan Oakley
In a lot of cases, that doesn't matter. When the goal of an application is to do something simple, adding bells and whistles to your UI isn't going to do the user any good. Desktop apps still have their place, but web apps can handle a lot of things without the need for an install.
Andrew Van Slaars
I'm not saying they can't do a lot of things, I just think most web app UIs are cumbersome. I'm a huge believer in having fewer bells and whistles. It's a good day when I remove a feature from a desktop app. It's just that.., well, no point in debating it further in this little hard-to-use text box.
Bryan Oakley
+8  A: 

Your point in general is false: web applications aren't more popular than local applications.

In your specific case, the client probably wants to take advantage of these things:

  • seamless upgrades
  • availability from any machine without you having to install client software
  • "no crashes"
  • ability to try it out before you finish the software
  • perceived reduced cost.

If you happen to disagree with their evaluation, you could try to persuade them that your experience suggests that a web app is not the best fit for this.

Or perhaps you should consider exploring continuation-based web frameworks, such as Seaside. They make persisting state through stateless interactions more straightforward.

Rich
What's the source for your assertion that web applications aren't more popular than local applications?
John Topley
What's the source for the original assertion? It's all conjecture.
Bryan Oakley
Well, the snarky answer is that all computers have local applications, while only some use webapps. :)
Herms
@John Topley: firstly, as @Herms states, everyone who uses a web application is using a whole stack of local applications to do it.Secondly, every web application uses a whole stack of local applications to *be* a web app.Thirdly, take one look at MSFT's profits last quarter.
Rich
@Rich I think you're confusing availability and profit with popularity.
John Topley
+1  A: 

Well, web applications can be easier to maintain. If you update a traditional desktop client's data structure, you need to make sure the client software is at the correct version. In a web application, this isn't a big deal.

Also, typos / bugs can be easier to fix -- you just update it once and redeploy. A traditional desktop app would have to update itself automatically or (if you're really a sado-masochist) update manually.

Having done both traditional desktop clients and web apps, I would choose web apps.

However, I'm surprised that such a small application would need to be a webapp.

Dan Esparza
It sounds to me like you like web apps because they make the job of the programmer easier. And here all along I thought software was supposed to make the end user's job easier... (count me in the camp of those that think desktop apps are far superior to web apps in most cases).
Bryan Oakley
Hmmm, I think web apps are harder than desktop apps. I've always figured that those that struggle along in web development were doing it for the customer and not themselves.
Brian Knoblauch
+1  A: 

For me the number one reason to favor Web applications over Desktop applications is that they are so easy to distribute. I don't have to install the app, worry if it is not going to work because of some client-based issue such as a personal firewall, or conflict with other app, etc.

Another reason is that I can push out updates to the app easily.

Maybe the answer for you is simply that either one works just as well. Without more information, I can't see that there's a overwhelming reason your app is better off as a Web app. But the for reasons stated above, web apps are very appealing.

Ken Pespisa
A: 

"I'm able to install it on the computers of them." And when you win the lottery, what then? Now who will take care of those lovingly hand-crafted desktops, desktops that have unique software?

The central administration of a web app -- even for two people -- is of huge value to an organization.

S.Lott
Desktop software can be easy centrally administered too. JNLP, anyone?
Brian Knoblauch
Yes, but... I hate the "it stopped working" bug. When I ask what they did, the answer is "nothing". When I actually go look, they deleted a JAR file because it was "suspicious".
S.Lott
+1  A: 

to be honest, because back in the pre-.Net day, web applications had three major advanteges over COM-based winforms apps, that made them much preferable in almost all situations.

 1.  They required no installation or deployment on client machines
 2.  They could not break other apps on the client machine. 
 3.  They could be made to function on just about any computer in the world that had a browser and could connect to the application's web server.

These issues were significant because for a winforms application back then, they were nightmare, especially points 1 & 2. ("dll hell") When .Net was released, the first two points became moot... .Net applications, with click once deployment, and no dependence on Registry keys/GUIDS for binary resue and component interoperability (The metadata to implment binary contracys is stored in the component itself, instead of in the machine registry), these issues became moot.
In general, the only reason nowadays to prefer a web application is #3, where your client base includes nonWintel platforms.

Charles Bretana
I prefer development in Java, so #3 is also a non-reason. :-)
Mnementh
I dunno - I've had .NET apps break each other by putting conflicting things in the GAC...the situation in which this occurred was eerily similar to DLL Hell...
Sam Schutte
Sam, well in .Net it's still possible, but you have to work at it... and no matter what it'seasily fixed, as .Net allows multiple versions of the same assembly to exist on any machine.. In COM/Active-X days it was common, and there was often NO workaround available
Charles Bretana
+1  A: 

It is impossible to answer whether Web Applications are more popular than Local Applications. Of course, there are certain types of application that would be better suited for the Internet.

It has already been mentioned that Web Applications have these perceived advantages:

  • No installation or real set-up required
  • Data can be logged easier. If using an Office application then it automatically keeps my work online for use anywhere, and theoretically, if you administer such a program then you can have access to the documents of others. This could be useful for the business in general
  • It works as long as the user has a working browser. No more crazy errors or data being lost because it's all on the Internet!

If these advantages work well with your choice of application then great! Develop for the online world and reap the advantages. The problem comes when your application isn't suited for the online world. Try to implement an online version of Spore and see how far you get.

To simplify things, the only time a Web Application is better than a Desktop Application is when the required functionality and business requirements show that online use would be better than local use. My friend works in an O2 Phone Shop and their new user registration application is an online application. This way all the data can be stored locally in the store and transferred at the same time to the main offices to ensure the phone is activated. This kind of application is suited for the Web because it needs to be installed in hundreds of places and needs to log data locally and at the main offices.

Through my own personal experience there is little reason nowadays to use an online application. Very few of them have great advantages to their desktop counterparts, and until a killer app arrives there won't be a good reason to change.

EnderMB
A: 

Some additional reasons:

  1. because a well crafted web app will run on virtually ANY computer that can run a browser. It effectively ends the OS wars if you run web apps - the Apple fans can keep using apples, the Msoft fans and Unix/Linux fans likewise.

With a desktop app, you must either choose the platform/OS, or else use some tool that promises (Hah!) multi-OS capability (and then deal with the hate mail from all sides when the desktop app looks unlike what any of them are "used to using".

  1. As said before, upgrades are as easy as reposting the code to the server. No muss, no fuss. Upgrading desktop apps can be a nightmare, especially if you develop a new version using new tools, and suddently have to upgrade all the "other stuff" (dlls, binaries, whatever) on all the desktops. IN the worst case, your fancy new version may not even run on an older OS because the binary libraries come with the OS. SO now you're upgrading OS (and hardware - yikes!) as well.

  2. For a majority of applications, web interface is just perfect, especially if you are creating the standard "read, write, report - from database" application, the web interface is pretty decent. AND it's pretty decent on most browsers (see #1). Desktop apps have a bad tendency to get lost in the current "fancy UI trend" (remember when every windows app had to have multiple windows). The amount of code you DON'T have to write can be quite a lot.

  3. The CUSTOMER is always right. Now the caveat is that you, as designer/developer, need to get inside the customer's head as much as possible and determine WHY they ask for certain requirements. Make sure the ACTUAL problem is getting solved first, but if that's the case, then defer to the client's wishes.

Cheers,

-R

Huntrods
In regards to the first one, typically, it opens up the browser wars. In a perfect world all web applications would work perfectly, but they often don't when using browsers on certain Operating Systems. Of course, on top of that you need to deal with mobile browsers on handhelds.
EnderMB
It ends the OS-wars, but I program in Java, so it runs on most common OS anyways. And now you introduce the browser-wars. The application in question has a login-form, that doesn't work on IE6. The two users use firefox, so it has no priority, and the man who makes CSS has no time for this problem.
Mnementh
I learned. many years ago, from my manager at the time that "The Customer is not always right - the Customer, is however, always the CUSTOMER". which is how I like to keep point #3 in mind.
Ken Gentle
"the Apple fans can keep using apples, the Msoft fans and Unix/Linux fans likewise." ... and it makes all users have to accept compromises in the interface. For every can of worms you close, another can opens :-)
Bryan Oakley
Actually, if you design and built the web app correctly, you can totally avoid "browser wars". Things like "login form doesn't work in IE6 only means that short-cuts in design were done, IMO. -R
Huntrods
Also - the customer IS right, but you need to elicit the specifications correctly, especially getting to the ROOT of what they are really trying to accomplish. Merely taking them at their word when they describe a program is only doing part of the task. -R
Huntrods
A: 

Web based applications are not more popular with application users.

But application users often don't pay for their own software.

Software buyers don't make decisions based on technical merits.

Stephan Eggermont
+1  A: 

I disagree with Rich in that, in my experience, web applications are more popular, but it depends on what you mean by popularity.

What I mean by popularity, in this case, is that if I accept a random programming job at a random small or mid-sized software company, I would expect that they're working on software for the web. There are many exceptions to this rule, of course, but the general trend for the better part of a decade now has been towards web development.

Many of the other responses give good reasons to favor web development:

  • No fuss installation / distribution process
  • Relative ease of cross-platform support

The huge one in my opinion is, as Rich puts it, "perceived reduced cost." Web development has a very low barrier to entry compared with other programming methods. You can start with HTML and CSS, move on to JavaScript, graduate to PHP and Flash, and at that point call yourself a web developer. Environments like C++ and Java have a brutal learning curve by comparison.

In my experience, business-minded folk are so caught up in how "easy" web development is that they often forget that there are alternatives. I was once on a project where a web project was initially asked for, and the project manager was surprised when the dev team said that a desktop application would be cheaper to develop given the requirements. Non-technical people may simply assume that a web application costs less because they don't understand the difference.

Parappa
+4  A: 

Most of the posts I've seen so far try to justify web apps by saying they make deployment easy, that they eliminate the "OS Wars", that upgrades are easy, etc.

Yet, the whole point of software is to enable the end user to be productive. The big selling point of a web app is make the job of a software professional a little easier. It's very, very hard to make a rich web application that compares favorably to a desktop app. Usually there are many usability compromises that must be made.

Sometimes those compromises are worthwhile, but the main goal should always be to give the end user the best experience possible. I've seen precious few web apps that do that as well as desktop applications.

Of course, you can say "but the run-from-any-browser feature is serving the user". Perhaps, but I'll take a hard-to-deploy-but-easy-to-use app over the easy-to-deploy-but-not-as-easy-to-use app any day of the week, if it's something I have to interact with on a regular basis.

I use turbotax online because it's a once-a-year thing and the instant update feature is critical, but no way would I want to run Quicken from a web-based app. No way, no how.

Bryan Oakley
A: 
  • Automatically backed up data/files...hopefully.
  • Automatic upgrades and installs
kenny
A: 

First of all, I think there is a (small) distinction between a web/app and a client/server app. The webapp is a kind of client/server app where the server is completely out of the customers' control, and the client is a browser. A client/server app is one where the customer owns and controls both the server and the client. Your case sounds more like a client/server app, not a webapp per se.

In addition to all the reasons everyone mentioned regarding why webapps are more attractive, don't forget to include that most of them provide a free version. Not just a time-limited or crippled version, but a free version which you can keep using forever or until they discontinue it (in exchange for some thing of course, your personal data, attention for ad revenue, etc). That is a huge incentive (since most of the freeloaders wouldn't care to pay for the app anyway) in addition to the no install and no upgrade advantage.

If you need to retain copies of your data though, and you are a hardcore "creator" rather than just a consumer, then a hybrid desktop app that syncs to a server is a much better solution in my opinion.

Emrah
A: 

I think part of the reason has to do with the limited options for human interaction that most web apps offer (unless you get fancy).

For instance, I used to work at a company that made healthcare software, and we had a heck of a time getting the users to understand right-clicking and drag-and-drop. So, for every action in the program, we had to have a right-click menu option, icon in the toolbar, and menu option such as File->Options->Export.

In a web app, it seems like most of the time, you've got two options - either a link or a button (sure, I understand you can do everything that any thick app does, but I'm just saying most of the time, you only run into buttons and links).

Because of this, it seems like a lot of users have less trouble figuring out web apps. They just look for the button labeled "Save" and click it. Therefore, those users prefer the web apps, because they see them as easier to use.

And, since the nature of web apps also means that a lot of times you navigate away from a page that has any kind of menu on it (there is usually not a "File, Edit, Help" menu at the top of every page), there is less noise for them to get confused by. They just look at a page, which is full of fields and dropdowns, and see two little buttons at the bottom, labeled "Save" or "Cancel". It's rare that I see a thick app that is restricted to that level.

Sam Schutte