If you're not used to writing desktops apps, yes it will take longer.
With Glade + Python 3 I was chucking out GUI code faster than the Visual Studio + Win Forms because there was no compile step. No over engineered MVVM ala C#/WPF for a simple app - load a glade layout file, hook up callbacks - bam everything works together. The MVC is already there because the content pipeline (model) is already separated and views are defined in glade files. I had a prototype functional by the end of the day - it would take me that much just to choose which tools to use if I went Javascript client/Python server.
Seriously - couldn't believe how fast you could get stuff done with it - everything works as expected, you get all the controls you need - no need to learn random stuff like that qtscript, no build process (this is actually huge !), insanely fast iteration (faster than web-dev). I always thought of GTK like some obscure C gui lib but the Python wrapper makes it very usable.
My only complaint so far is that Glade seems to be getting progressively slower as you remove/add stuff so you need to restart it from time to time (eg. once per hour) but it starts instantly so it's not really an issue.
Note : I haven't yet tried to get it running on Windows or OSX since we all use Linux internally.
Anyone that has ever used RAD tooling for GUI applications can easily see how the HTML/CSS/JavaScript combo tooling is still miles behind from a 90's desktop developer experience.
People always go on about Cordova etc, but I've never used one of these that wasn't a clunky, slow non-native looking mess. Do you have any examples of Cordova apps which aren't noticeably more crap than, say, an average-quality iOS app?
* the very first animation (a slide transition to the left) was janky
* The app was unable to get my GPS location (it's being shared properly, and I have intermittent GPS signal, but if it was using the native fused location provider this would work perfectly)
* Buttons have no touch feedback.
* It's not the platform standard navigation drawer
* It's not the platform standard action bar
* The touch drag on the navigation drawer lags behind the finger position more than it should
* Non-native map has really bad pinch-zoom-pan gestures
As an Android developer I'm sure I'm consciously noticing things that lots of other users might not, but if this is the best Cordova still has to offer... :/
Having talked to a lot of users, they do notice. They may not be able to articulate it, but all the things you mentioned give them the feeling that the app is not as good as some other app.
I recently had to help somebody with their public library and a particularly magazine publisher for digital issues. They require a web app to read the issues. They were trying to use their Mac, but the site refused to load. The public library staff had no clue why it didn't work ("well, it works for us", and their attempts to contact the publisher was your stereotypical tech support horror story.) Long story short, their website doesn't work on all browsers. They implicitly know that it doesn't work in Safari because they apparently wrote a native app just for iOS. However, they have no native app for Mac and never bothered to fix their website.
You generally don't have those problems in native. Apple in particular designs their APIs to steer you in the right direction and make it painful for you to do something that goes against their UX guidelines.
One thing that is more and more important is batterylife. The more layers involved, the more energy they suck.
The VM approach allows the VM to synchronise application wake-ups which can increase battery life.
Google chrome on Android is acting much like a VM to developers and I'm willing to bet the Android Chrome team are spending a much time as the Java runtime team are on optimising.
Companies like Famo.us have proven this is incorrect mathematically over 2 years ago. That is precisely why Famo.us built its own rendering engine that subverts the DOM and renderings content similar to a gaming engine (Unreal Engine). The DOM can't render as many surfaces as a native app in one view smoothly.
You can still make a very performant cross platform DOM based application (http://hn.premii.com is an excellent example), but in order to get that performance you need to limit your interface to very basic UI elements.
Define your criteria for "winning". If I'm truly building a user experience, then I don't know a single hybrid app that has "won" (my definition of winning here is an app I use daily, and I don't know of a single app I use daily that is hybrid)
> 90% is easily good enough for most applications
The problem is most applications (80%) don't really even need a native app to begin with.
This is true only if you're working with people without experience. Someone who is experienced with the mobile toolkits is going to be able to develop the app just as fast, with more functionality.