Web app situation on iPhone has improved considerably since pre-SDK days:
• In 1.0 there was no offline cache or local storage. You had to download whole app each time over 2G.
• JS was many times slower (pre-SquirrelFish engine, slower hardware).
• No CSS transitions or animations. Now you can have 3D hardware-accelerated layers in CSS.
• You couldn't get rid of status bar and Safari toolbars. Now iOS allows apps to take over entire screen (if user bookmarks page on home screen).
Also developers needed some time to learn how to use WebKit features. Instead of dumbed-down CSS you can use some CSS3 and -webkit- properties. Instead of slow and limited onclick you can use non-standard touch events, etc.
Gmail as a web app is pretty awful. Web apps have improved somewhat, but in general they suck a lot compared to native apps.
Web developers want the web to take over from apps, in spite of the fact that the market has CLEARLY chosen native apps over web apps. Web apps had a year and they gained no traction. Compare that to the native apps traction: huge difference. Wishing it were not so does not change that.
The future lies in native shells mixed with HTML5, and this is just for portability reasons.
It's not that CLEAR to me. Native apps are popular on iPhone because Apple promotes App Store heavily. App Store is on every iPhone screen, in every iTunes copy.
From technological perspective superiority of Cocoa it's not that clear either. In my "native" application I've used WebKit views in many places, because it was easier for me to create complex layouts in CSS rather than Cocoa views.
Considering most of those thick mobile applications would rely on the internet for one reason or another, it's not wrong to assume that web-apps could take the reign in the future. After all, HTML offers more capability now than it did back when the iPhone was released.
I've been doing a fair bit of development with jQTouch, jQuery, offline web apps and the SQL database engine accessible from JavaScript in Safari and it's a pretty sweet combination.
Kind of a side-note but I have seen a few times something along the lines of "seeing the reaction to web-apps, Apple decided to release an SDK".
My opinion on this is that they had planned all along to have an SDK but, since it wouldn't have been ready on day 1, they said "oh no, make web-apps they're great!" so that developers would do something while they're finishing polishing the SDK.
Sure, I have no proof for this either, but it sounds unlikely that 1. they wouldn't have thought about it, 2. they would have been able to turn around an SDK in just a few months.
I agree. It's always seemed obvious to me that the SDK was planned from the start, not knocked together in a few months as a response to developer rejection of web apps.
The future lies in thicker clients, particularly for mobile where the internet is not as assured as on a desktop.