For a web app to provide the same functionality as a native mobile app the same content must be downloaded. A mobile app downloads compiled executable and all assets in a bundle upfront, then it's permanently stored. A web app downloads UI structure (HTML,CSS) and minimal code (JS) first, appears to instantly be working, then downloads the rest (media assets like images and movies, the rest of the code, etc) in the background. In the end, the same amount of stuff has been downloaded. But web apps have the instant usability feel to them.
Web apps are improving such that they will be able to match the same experience and speed of native apps. JS engines run faster, WebGL allows 3D games, caching of files allows faster starting times. Maybe they'll get close to native speed, unlikely to match it due to middle man (browser, plus overhead of compiling JS vs pre-compiled Obj-C). But you still have re-downloading when the cache clears something out (or else you copy more mobile app features by letting the user declare what stays in the cache permanently). Mobile apps are re-downloaded once per update. Web apps will be re-downloaded more often than that even with good caching (maybe, I guess you could cache infinitely until you run out of space, so with sufficient space it's equivalent). So while web apps are playing catchup quite well, mobile apps still have advantages.
Payment models are different generally, but the models would work fine regardless of the web app vs. mobile difference. Web apps tend to be subscription based, mobile apps tend to be buy once with infinite free upgrades, or using some newer experimental model like "freemium". But you could make a buy-once web app or a subscription mobile app, and IIRC people already have.
So, the technologies are converging, and at the end of the day you still have to get the software from the developer to the user.
JS+WebGL+CSS+HTML+localstorage+... vs. Obj-C+Cocoa, that's just format war. Open web+browsers vs. curated Apple App Store + iOS vs. un-curated Google App Store + Android, that's platform war. Someone will win. But people will be using software on their mobile devices, regardless of how and where they get it or what's under the hood. Mobile is next, and the interconnectivity of the web will be working with it, and social will be working with it, and whatever else comes in the future will also add and change things of course.
Personally I think you and wavephorm are going to be getting a very nasty shock in the next 2 or 3 years.
Firstly a browser based application is always going to suck because it's based in a browser. Reflect on that, it's an application running on an OS inside an OS. It doesn't matter how fast it gets, it's a subset of a subset of controls.
Secondly, and this I'm not so confident about, but still believe in. Browsers have sucked at apps for the last 10 years and are going to suck for another 10 years because the HTML standards committees move so slooooooooooooowwwwwwwwwwwwwwwwwwwwww. That's why Flash dominated and why native apps are going to dominate. HTML finally has moved to take on Flash just as Native Apps killed flash. They're a whole generation behind!
And the third reason? It's all based on javascript. It is practically impossible at the moment for normal programmers to write medium complexity javascript. ECMA 5 has been released with a whimper instead of a bang. It's pathetic. So anything written as a web app will be inferior to the much more manageable programming languages on the native apps, even though it's [cry] Obj-C and Java. Javascript is an order of magnitude worse for complex apps than those two.
Finally, the growing number of OSes. It ultimately means a growing variance in the quality, speed and modernness of HTML implementations and support, you're always going to get an edge going native on every OS. Previously we had Windows. Then Windows and a little Mac. Then Windows, Mac & iOS. Then Windows, Mac, iOS, Android. Then Windows XP, Windows Vista+, Mac, iOS, Android 2, ICS, Kindle Fire, etc. The OS market is fragmenting.
Very good points about why web apps have quality issues.
Some of those issues are not necessarily inherent limitations of the technology. We don't have to use Javascript, that's just what the standard currently is. Flash was a possible answer, as is Silverlight, in delivering apps over the web through a browser. Flash Air (check me on that) was a way to run a Flash app in what looked like a native format. Chrome 1.0 had a mode that hides all browser controls in an attempt to mimic the form of a native app. Java was restrictive in allowed functionality, but people added access to the Windows task bar, to OpenGL, to all kinds of things via JNI. We can add all those extra features to a browser via plugins. So it's technically possible to do all the same things from a browser. It's just a lot harder to get all the people in the middle to agree on reasonable technologies and then implement them the same way.
The large amount of OSs argument is interesting. On the one hand, that means there will be a large amount of mobile OSs for which a native app must be developed. That's a challenge to developers in itself. On the other hand, varying compliance with standards and various performance in a browser is another challenge to developers looking to reach all OSs at once via a web app.
Java could be brought up again, because of their write-once-run-anywhere idea. They did very well at making sure all Java implementations were compliant. But they had to offer a subset of full native capability, a limitation which was partly worked around by linking to native interfaces in a non-WORA manner. It sounds like any attempt to write once and run on every platform and have the software be as pretty and fast and functional as possible is essentially doomed. There will be limitations to those attempts (UI that doesn't fit in, no integration with platform-specific features like address book or task bar or spotlight, no access to technologies that only exist on a subset of platforms). But you still have the trade-off with the need to write many native versions for competing platforms otherwise.
This is precisely why the web will win. The time is already here where people have to decide whether to build a desktop app, a smartphone app, a tablet app, or a website that can support all three form factors? We're already there folks. The logistics of supporting 3 different paradigms are breaking down. At the same time a small team cannot build out an iPhone and Android ecosystem simultaneously, and definitely without leaving the Web entirely behind. Whereas if the focus on the web experience they can support every possible paradigm simultaneously.
If we're talking really long-term, I don't see a big difference between loading a web app and having a native app quickly and seamlessly installed and loaded just by clicking on a link.
Eventually, improvements in bandwidth and computing power might enable just that.
At the end of the day, developers will go with what is more feasible, but the whole distinction between web app and native might disappear from a UX point of view (just like the current web apps are kind of a hybrid between "old" websites and "old" desktop apps).
Web apps are improving such that they will be able to match the same experience and speed of native apps. JS engines run faster, WebGL allows 3D games, caching of files allows faster starting times. Maybe they'll get close to native speed, unlikely to match it due to middle man (browser, plus overhead of compiling JS vs pre-compiled Obj-C). But you still have re-downloading when the cache clears something out (or else you copy more mobile app features by letting the user declare what stays in the cache permanently). Mobile apps are re-downloaded once per update. Web apps will be re-downloaded more often than that even with good caching (maybe, I guess you could cache infinitely until you run out of space, so with sufficient space it's equivalent). So while web apps are playing catchup quite well, mobile apps still have advantages.
Payment models are different generally, but the models would work fine regardless of the web app vs. mobile difference. Web apps tend to be subscription based, mobile apps tend to be buy once with infinite free upgrades, or using some newer experimental model like "freemium". But you could make a buy-once web app or a subscription mobile app, and IIRC people already have.
So, the technologies are converging, and at the end of the day you still have to get the software from the developer to the user.
JS+WebGL+CSS+HTML+localstorage+... vs. Obj-C+Cocoa, that's just format war. Open web+browsers vs. curated Apple App Store + iOS vs. un-curated Google App Store + Android, that's platform war. Someone will win. But people will be using software on their mobile devices, regardless of how and where they get it or what's under the hood. Mobile is next, and the interconnectivity of the web will be working with it, and social will be working with it, and whatever else comes in the future will also add and change things of course.