> Native development appears to be linear and straightforward because there is one language and one API - "one thing" to reason about.
No. There are X languages and X API's to reason about when doing native development, X being the device OS's you want to target. If you're only targeting iOS and nothing else, then I would agree with you. This is a point that's also glossed over by native app proponents.
> If you're only targeting iOS and nothing else, then I would agree with you.
That's becoming outdated. We've got a native iOS app and we're doing the Android port with Apportable, which provides native iOS APIs and features on Android. The dev version (which we're using) implements its own Core Animation subsystem on top of OpenGL ES 2.
It's not perfect, but it's a hell of a lot better than maintaing two separate codebases and it's far easier to fix whatever platform issues there are than the equivalent "long tail of details" you encounter working with web views.
Cool, so that covers iOS and Android (with its own long tail I'm sure). You still have Web and Windows mobile to worry about assuming that platform continues to gain popularity.
Apportable could be ported to run on Windows Phone, there just hasn't been any interest (or so I'm told).
Much of it could also run via NaCl as a Chrome Packaged App, including the UI stuff. That's a much bigger change though, since you'd be supporting mouse events, not touch. But it's still doable.
Still takes longer for non trivial apps to get the it right on a large array of devices of X in Html than native. Especially using something like Xamarin I would gladly take up the challenge. Hybrid has it's place ofcourse; for more complex text markup embedded in apps.
Native feel is a false prophet. "Fitness for use" is what you should aim for. The web didn't have a native Windows 95 feel. ExtJS tried hard to achieve interfaces that aped the "native feel" of Windows. Only hardcore interface designers that actually know what "native feel" is care about native feel, and even then they will only care about it so long as the current fashion trend is achieving a native feel. Once non-native feeling apps achieve "fitness for use" en masses, the "native feel is canon" will no longer be part of the app zeitgeist.
Except that you can get a native feel, as Basecamp has clearly demonstrated, if you utilize native SDK's where needed. Did you even read the article or try out their apps?
No. There are X languages and X API's to reason about when doing native development, X being the device OS's you want to target. If you're only targeting iOS and nothing else, then I would agree with you. This is a point that's also glossed over by native app proponents.