I have a pro-application story for people. I have an app that does a virtual tail onto a web page. Problem is, we can't show ALL the data at once. It takes a lot of time for the page to render. (Think 3000 rows). So we show the top 100 and let it auto refresh so we can eye-ball newer stuff "just in case". This fucker pulls the same data over and over again, generating a lot of database hits.
So why not cache it you say? Well, we can't. We need the data live. Ticker-style. So if someone hits reload, the better have the newest data. Now lets say we want to find people with only certain attributes. In a web page, we have to either run a new query to pull the specific data. But.. if there is an app w/ all the data loaded (quick to render sits it's using a native widget set), why not use the existing dat aand then filter that. Just hide the irrelivant data. Now we don't need the data again, just un-filter it.
Now imagine dealing with 8-10 THOUSAND rows of data at 12 columns and doing live manipulations. Whn it comes to doing data manipulartions, an app is usually easier. The JS becomes a pain.
Also, take a mail app. I tried switching permanently to a web interface.. but lord, it's so slow compared to mutt or Mail.app just because it has to take so much more time to build and render a page. W/ an app, the interface sticks around, you just change the data on the fly.
Dont' even get me started on maintaining a state. Say that you dont' want peopel to "go back". Say you wanted to have people go through 52 cards on 52 pages, but hit each one once. Then you have to worry about caching and all of this other stuff. W/ an app, you have TOTAL control of what the user can and can't do. No need for encrypted cookies, or doing a db call every now and then to make sure he hasn't clicked back.
But you know what the web is good for. It's good for arbitrary data and showing it ala book form. If i had to read each email message once w/o managing it.. moving it into folders, performing a search, in chronological order, web pages would be easy.
One-off's, where state doesn't matter (like a simple calculator) or a search page, those do really well, since state doesn't matter so much. Other things, not so good. :)
Play that funky music white boy..