I've updated the preface to say as much.
Webapps have surreptitiously become my standard for app features.
If you want to put together really simple interactions, then a web page will get you off the ground fast. The problem is when you get to the details. Harder things become more difficult, or just impossible.
For example, I don't think there's any way to control a browser's spell checker, beyond turning it on and off for a given field. (Correct me if I'm wrong.)
In a native app, I have implemented functionality so the spell checker would ignore text with a certain pattern, but spell check the rest of the input.
Web technology is great for many things. Replicating a native app experience is not one of them.
There are certain apps like Photoshop, After Effects and Lightroom that still need native. But most of the rest, not so much. I still use a native code editor but I can see that disappearing soon.
I suppose one problem in discussing this is the image of 'native' app each of us has in our heads. Is it 'iTunes'? No longer need that. Google Play or Amazon Cloud music let met access all my music everywhere. Is it Office? For some users they probably still need it but most of them will have a better experience with something online.
Is it iOS apps? Which ones? Games? There's a few high-end iOS games. Most of the rest are available as web apps though or certainly reasonable clones. Is it all the native web substitutes like the G+ or Facebook app, the Twitter or Forsquare app. The Yelp, Amazon or IMDB app? All of those are a waste of bits. Frustrating because in their quest to simplify they always leave out important features. Waste because their mobile websites provide the same features.
The only thing hobbling those apps are a few more browser features and ability to put them in the app stores even if they happen to just be bookmarks.
> Why would I want a native app when Web apps are so much
> more awesome?
The client-side environment is far too unstable to build a "native app". There's a reason why monumental frameworks like ExtJS barely work in IE 9.
Because right now it looks like something that belongs on Windows 95.
There's also Adobe Air, but its security policy breaks a lot of existing JS.
In my case, I just ended up writing a wrapper for my app in QT.
Most of it is rubbish.
If you have Java installed on your workstation, click here to launch ArgoUML (UML editor). This is what I expect from a "desktop class application" from deployment to usability:
These apps belong to what I refer to as the "just barely good enough" class of desktop apps. Doesn't look native, doesn't feel native, aesthetics are strictly academic stuck in the 1990's and usability is just north of nominal.
This is a prime example. Fonts, control spacing, inconsistent sizing, 8-bit aliased bitmaps ... it looks like crap compared to a native app like OmniGraffle.
Please note that Argo is a heavyweight engineering tool with metadata, not a pretty picture generator. It's an order of magnitude more powerful with respect to semantic modelling.
What it looks like is less important that how it works in that sector.
EDIT: also regarding native appearance. Every web site looks different - should have a common stylesheet for everyone? No.
Is this a joke? That would be barely tolerable for 2000.
Slow, clunky, non-native feeling, the bad kind of cross-platform, a UI beaten with the ugly stick and very little thinking about usability issues.