So you think desktop apps will die a slow death? The sentiment of demise of desktop apps has been professed by many people, Jeff Atwood, Patrick McKenzie to name a few. With colossal jump in our web technologies, both performance and capability wise, something that couldn’t have been possible few years back, the idea is getting even more traction. When you see demos like this, you are tempted to think if web browsers would be able to address the performance issue, what would withhold for web to be used for everything from games to essential business software?
So why do I think desktop apps still make sense?
Passiveness of income: While it may be true, web apps fare great when it comes to potential revenue, cross-platform comparability, and reach, it is indispensable to avoid working actively on it. Have you ever heard of someone who was pulling off revenue his age old SaSS app without putting in any work? On the other side, I still get sales from one of my stupid script that I made a long time ago and never even marketed. May be a generalized scenario; it might be possible someone earns a passive income from his web app without adding anything but it is hard to think that the developer can avoid tasks like marketing, server monitoring, dealing with quirky consumer issues, or scaling.
Less overhead in selling: Selling a web app means, integrating it with an API to accept payments, offer a X days trial, send emails reminding trial period is ending and charge card on recurring basis. By any chance, if you happened to use paypal and their API be prepared to pull your hair off in doing this. In contrast, selling desktop apps is much easier with many services available for selling downloads – gumroad, softpedia, CNET.
Lesser obligations to deal with issues: With a web app, you are expected immediately to address any issue that pops up and with many peculiarities of CSS and HTML, it is reasonable to expect that in “some browser” on “some device”, the text is overflowing outside the container. If you are dealing with a desktop app, you have plenty of time till the next release is due (except for security issues, of course).
So it boils down to how desktop apps are about writing code and shipping where as web apps require you to be there always. Although, you probably won’t lose customer over some little CSS issue but the way your mind works, you won’t be able to stop yourself from addressing it immediately and that is where desktop apps have an upper hand – you can prioritize which things to add / fix / remove in the next release. One example of this has been documented by Joel Spolsky.
As Excel 5 was nearing completion, I started working on the Excel 6 spec with a colleague, Eric Michelman. We sat down to go through the list of “Excel 6” features that had been cut from the Excel 5 schedule. We were absolutely shocked to see that the list of cut features was the shoddiest list of features you could imagine. Not one of those features was worth doing. I don’t think a single one of them was ever done, even in the next three releases. The process of culling features to fit a schedule was the best thing we could have done. If we hadn’t done this, Excel 5 would have taken twice as long and included 50% useless crap features — Painless Software Schedules
Whether or not desktop apps will cease, web apps certainly aren’t a de-facto choice when it comes to making a product.