But webapps have the same problem, they just push the complexity into a different area. I also volunteered for FictionAlley.org, a mid-size (110k or so registered users) web community. We would get complaints from users that the site was unreadable on their 40 character PDA screen. We'd get e-mails from blind people saying could we please make the site handicap-accessible and usable on their screen readers. We would get irate e-mails from Opera users about display glitches, or irate e-mails from Mac users wondering why the latest feature we just released didn't work on Safari. We'd get tirades from people because we added navigation bars, after getting tirades from people because we didn't have navigation bars. We'd get constant complaints about the (free) site being too slow, because we didn't have money for more servers.
Until you've actually been involved with a website that has lots of visitors, you have no idea what goes on behind the scenes to keep things running smoothly (or sometimes not-so-smoothly). Yes, desktop apps are hard. I've done them - not just the release engineering stuff above, but I also wrote the Java app included in the package, and I wrote a Netbeans plugin for my current employer, and both had to deal with the sticky platform-and-threading issues necessary for a responsive, professional UI. I still say that webapps are harder.
I can only ask what kind of software have you developed, sir?
If web software was harder, you wouldn't see "products" created over a weekend shaping up into companies a week later. And don't get me started on "millions of users on dozen boxes".
The primitiveness of web application development is mainly the reason why so many "ex-taxi drivers" and are rolling out web apps daily.
Two huge reasons why web app development is so trivial are: - You control your hardware. This is really important. - You do not need to develop UI. Web Pages are joke compared to the "real thing".
For starters, try to develop an super-simple desktop application that uploads an arbitrary file to a given FTP address, let 100,000 users (let alone millions) download it to discover: - It won't start - It won't connect - It crashes their computer. - "Where did it go?" question after downloading.
You'll be amazed. You will realize that PCs of most people are just like jungle, populated with adware, multiple software firewalls running simultaneously, paranoid anti-virus packages, missing DLLs and weird security settings. Moreover, users will be brutal: they'll be turning power off in the middle of your disk writes, they will upgrade libraries you linked to without asking you first, they will install your executable on desktop and will be killing files you create, the list goes on.
Over 80% of developing desktop software consists of two things: - Fighting unexpected problems in a hostile environment of user's PC - Dealing with real, LIVE UI that is reflecting real-time changing objects, and is pleasant to use.
On top of that you're trying to do this using minimal amount of libraries, because you can't expect people to download 100MB installer.