There seems to be an ebb and flow between "thin client" and "thick client" computing. Right now we're leaning heavily toward the "thin client" realm, with the emphasis on "Cloud this" and "Web that"; however, it's entirely possible that something will happen to bring that remote compute capacity back to the local device for the sake of efficiency.
And even now, there are reasons to compute locally in a native language instead of remotely via an abstraction. Some of those reasons (speed, primarily) are beginning to be mitigated by new technologies, but the reasons will likely always exist for why a native app can be a better solution than a thin client style implementation.
Probably what we'll see is an emphasis on APIs and intercommunication - this gives companies the power to do a lot of logic server-side, and just roll native apps for things that are difficult to do on the server. Implementations like Dropbox, Evernote, Wunderlist, and Netflix are good examples of this bridge between philosophies.
Can you enlighten me about any of these? I feel ignorant.
But there are several technologies on the market right now that can actually deliver such experiences with the rendering done off-device (albeit with some extra latency).
This is an example of new technologies mitigating the drawbacks to building non-native/remote-processing apps.
Answering while building web app (front-end): I wana write native apps man, this whole HTML,CSS,JS shit is a unbearable hack to build apps on something that was fundamentally designed to create linked documents, at every step I am just trying to use duct tape to build things.
Answering after some more time: Hell, I am done with front-end development, I am good with my server-side, use whatever language/platform that solves the problem, build distributed scalable systems, kind of programming.
Developers will favor the most cross platform solution that can meet their needs. That's why we look at Javascript before we look at C before we look at Assembler. That's why nobody makes two different apps for Samsung Galaxy S4 with Touchwiz and the HTC One with Sense. The result is just as good, and much cheaper, if you make a single application and then, if necessary, optimize for the differences.
Theoretically, one could argue that you already make a decision to cross-platform if you decide to make the same app available in two different languages: The differences in languages (e.g. length of words) can impact the user interface of your application. Yet how many iOS developers do you know who make a separate app for every language?
How could you have a web app that interacts with a device without a native layer at some level? At some level, you have to have a native application, though a company could make their stack directly compatible with web applications.
That said, I think you are going to continue to see people developing frameworks like Phonegap, because the idea of developing once has a variety of advantages for developers, and I/O is going to be the limiter on many processes.