views:

561

answers:

11

If it's possible to implement an idea as a desktop app and as a web app, which way would you go?

I'm a little biased here, as as a user I tend to prefer desktop apps over web apps, for the ability to access information quickly: no need to open a browser, no need to login, more responsive, tray integration, notifications, global hotkeys etc. As a developer, I also have more experience developing desktop apps. But as an ISV I have to worry about enriching not only users, but myself too ;)

A: 

If you're looking to make money with your application, I would say that web-based is so much easier because every potential client has access to the application as soon as you public it. Desktop applications require a supply chain that's much more work to create than any programming task I can think of.

Jekke
Not necessarily. I think there are plenty of websites that happily sell your software for you. And setting up your own little web shop probably isn't too much trouble either. But you are right, it still is more work than just having users log in :)
n3rd
+1  A: 

It's a tradeoff.

On the one hand, a web application allows you to adopt SaaS style fees as well as allowing for an easier deployment model. On the other hand, a web application requires upkeep in the form of servers and bandwidth costs.

Desktop applications allow for a richer UI, which may make your users happier, but are more difficult to deploy and update.

Randolpho
A: 

It all depends on what functionality your application is offering. Some apps just can't be run on the web, because they require local PC data that wouldn't be available from the browser.

From a maintenance point of view a web application is definitely easier to maintain (saving time and therefore costs), because it only runs in one place (your server, so any new releases have to go only there) and it's fairly easy to test the different user configurations possible by testing across different browsers. With a desktop app it would be much harder to do this as each user can have a different hardware/OS setup which could cause all sorts of problems (and could be hard for you to replicate it in a support scenario).

tomlog
FrederikB
+2  A: 

In your case, because your background is in desktop, I'd go with that just because you could probably implement it way quicker, and probably implement it in a better way as well.

fig
A very valid point.
Vitaly
+10  A: 

I guess it depends on how you plan on monetizing things. With a desktop app, you'd be generating revenue primarily from paid buys. With a web app, you can always charge a monthly fee (or even a tiered fee depending on access levels) and maybe even support a free/trial version with advertising.

Also, why limit yourself to one or the other? Use a framework like Adobe's AIR and give yourself the best of both worlds.

Where do your skill sets lie? If you have a ton of experience building desktop apps and not much familiarity with the web, go desktop first. If you're a web developer, web first. Play to your strengths.

How about designs? Know any web designers that could design your web app for you or would it be easier to blow something out on the desktop?

Is the cross-platform aspect of the web worth it, or are you going to build primarily for Windows or Mac or Linux and be comfortable with that?

There are plenty of considerations. Play to your strengths.

ajm
A: 

Google says that web apps are the future, and they're probably right. Web apps have the significant end-user advantages of being inherently cross-platform (in most cases) and not requiring installation onto the computers that are going use them (again, in most cases). The flip side, of course, is that they're going to be running on your computers, not your users', so you're going to have to spend a certain amount of money on infrastructure, and probably more than you would spend on distribution. There's also the issue of marketing--you probably won't spend more money on it, but it's a lot harder to get the word out when you can't put a box on an endcap at Best Buy.

In any case, if you have the choice of either, I would do some inquiry into the costs of hosting and scaling your application, and if it's not prohibitive to making a profit, I'd say go for the web app. If you can market it well, you'll reach a much larger user base then you would with a desktop app.

That's my two cents in what is undoubtedly going to be a heated discussion. :-)

MattK
A: 

I prefer web due to:

1) Cross platform 2) You only have to fix a problem once, which lowers support costs 3) You can onboard fairly easily, and even do nice free trial stuff 4) Rolling out new features to all customers is easier

nikudesu
+7  A: 

That really depends on what kind of application you have and what you want to do with it.

Web applications primarily have the following advantages:

  • True platform independence - if a browser is available for the platform, your application will run on it. Of course in practice it's not quite as simple as that, but compared to desktop applications it is essentially a non-issue.
  • Easy Deployment - Upload the latest version to the server, et voila - deployment done. That's all it takes. No manual updating, no downloads, nothing
  • Global Availability - browser + internet connection = access to your application.
  • Secrecy - if you consider this a plus. What I mean is that most of your precious code stays on your server and you don't have to worry about evil people reverse engineering your stuff ;)
  • User Control - You decide who has access to your service and who doesn't. No need to worry about software piracy, serial numbers and all that nasty stuff.

On the flip side you have these issues:

  • Integration - Your app runs of the server, and there really isn't a way to interface with local applications (or even files). Copy&Pasting between a web app and a local program isn't really doable, for instance. This of course also includes accessing local hardware like USB dongles, or whatever you can come up with.
  • Connectivity - No internet, no service. There are some ways to alleviate this problem with local caches and such, but the bottom is that without a internet connection you are SOL.
  • Performance - If your application is performance heavy then having ten thousand users run it on your server at the same time may require an expensive server farm. You probably don't want to implement SETI@home as a web application.
  • GUIs - You can do amazing GUIs with Flash and JavaScript these days, but it still isn't the same as a real Desktop GUI (drag'n'drop between a browser and other applications immediately comes to mind). The right-click context menu is a classic issue. Do you display the browser's menu, or do you try to suppress it and show your own? It's a lose/lose-situation.
  • Responsibility/TCO - It's your server, so you have to pay for it and make sure it runs smoothly and backups are made. A desktop app is shipped 'as is', and if the user's hard drive crashes it's not your problem. Web apps are a whole different story here.

So what does this all mean? It all depends. Figure out what issues are most important for you.

Edit: Sorry, I just read that you specifically asked about monetizing your app. You should've mentioned that in the body of your question, too ;) But I think I partially answered that anyway, at least I tried to.

n3rd
Nice comparison list. I would also add responsibility for server downtime, security and loss of data. Never had to worry about that with desktop applications.
Vitaly
A: 

Well, just straightforward easier, it's web, 100%. Sticking ads on your site takes about 5 minutes. Probably a little longer to make it look nice.

That doesn't mean you will make as much as you can on the desktop though. But seriously, if you are talking easy, people write scripts that make websites with ads on them. They make $100 and then take the site down. They do this several times a day. There is no way to make that kind of fast money on the desktop.

The caveat is that on the web you are talking about smaller amounts of money, unless you can make the site popular.

Jeff Davis
You don't have to generate your income solely based off ads; you could also charge monthly for your service.
musicfreak
A: 

I think this really depends on the type of app. Can a web browser handle whatever you want to throw at it? The new browsers are pretty impressive, but people who are still stuck on IE6 won't be happy. Also, how important is offline data? Google Gears is a bad solution to a messy problem. Safari and Firefox (3.5) both have pretty good support for offline data, but again, people with older browsers can't make full use of it. (Of course, you could always drop support for older browsers.)

The major drawback on the web is that you are responsible for the user's data. The major advantage on the web is that you automatically get a much, much wider audience. Reverse for desktop apps – smaller audience, but less burden on you.

A: 

hum... still, the question remains open. let's say I have a Java desktop application that I want to monetize. How do I do this? Java includes HTML renderer tht does not support js and I'm not aware about any framework allowing to display Ads (i.e. banners) in a desktop app including all the monetization/reporting APIs. Does someone know a framework allowing to do so?

DaveG