I wrote about this problem here (http://serv.github.io/blog/2014/02/20/unfortunate-state-of-m...). Mobile Web sucks because there's an incentive problem. No one really has strong incentive to make mobile web better. Performance issues are largely an effect of this root incentive problem. (edited from "cause" to "effect")
- Users have a strong preconceived notion that websites on mobile just suck compared to native apps.
- Management allocates less financial and developer resources into mobile web because users prefer native app strongly.
- Developers time and effort are stretched thin for web because management focus more on native app teams.
The mobile web will continue to lag behind native app for a while.
Your assessment seems to suggest this is a perception issue. But even the best mobile websites really are second-tier to solid (not even top tier) native apps. And as smartphones become more and more sophisticated sensor platforms, this will become even more problematic.
And as smartphones become more and more sophisticated sensor platforms, this will become even more problematic.
Not if mobile browsers keep up with these more sophisticated platforms. The problem (as the OP outlined) is that there are decreasing incentives people like Apple to keep improving their mobile browser. They hold the keys, and they want apps.
I agree that this is a significant factor in the problem, but it is far from the only one.
The problems with the mobile web are far broader than that. Being tied to JavaScript (a language whose semantics remove significant optimisation opportunities, unless you write in something else and target via asm.js), a UI layer that doesn't cleanly map to being hardware accelerated, and missing or incomplete APIs for everything from Bluetooth to push messaging.
If you look at the Chrome APIs (that is the stuff Chrome apps get access to) there is neat stuff, and they are attacking it slowly enough that what APIs they produce are sane, and this is clearly what they see as the future. The problem is the world moves faster than that, and just as the web people are beginning to even grok mobile they're going to be smacked around the head by an absolute explosion of tiny devices.
Being tied to JavaScript (a language whose semantics remove significant optimisation opportunities, unless you write in something else and target via asm.js)
In a world where V8 exists, I'm not so sure. JS running on the main thread absolutely is a problem, and Web Workers are a clunky solution.
a UI layer that doesn't cleanly map to being hardware accelerated
Agreed this part is tricky. But existing hardware acceleration on mobile web isn't that bad.
missing or incomplete APIs for everything from Bluetooth to push messaging.
Mozilla is working on all this for Firefox OS, but of course no-one has incentive to agree with them.
> JS running on the main thread absolutely is a problem, and Web Workers are a clunky solution.
Chrome is moving towards out-of-process iframes, which should help alleviate many performance issues (ads janking your page) and give you new capability (basically web workers with a full DOM).
http://www.chromium.org/developers/design-documents/oop-ifra...
"But existing hardware acceleration on mobile web isn't that bad."
Mobile users are extremely demanding, in my experience. They DEFINITELY notice the difference between web & native interfaces. When mobile is accounting for huge %s of traffic and revenue, its a hard sell to settle for good-enough for philosophical issues. Particularly when the competition isn't.
>But even the best mobile websites really are second-tier to solid (not even top tier) native apps.
This goes back to his original point , no one really has strong incentive to make mobile web performance better. The two primary gatekeepers (apple, google) are benefiting hugely from their app stores in terms of profit and pushing their agenda.
I must be in the minority, but I don't have a problem with full-desktop sites on my mobile. In fact, my browser settings have "Request Desktop Site" as the default.
And, as mobile screen sizes and 4G availability increase, it seems that it would be less of a problem running full-site versions on mobiles going forward.
Maybe more of this issue will resolve as Apple moves to larger screen sizes, but I have always had the impression that mobile-sites were a stop-gap until higher-bandwidth and larger screens became the norm. Reminds me of the short-lived WAP standard before smartphones became de rigueur.
As a developer working in the "mobile web" sphere, the first notion is completely on point. In terms of usability, native will always overpower non-native avenues, creating smoother user experiences and a lot more "flash" in the UI tier that non-technical users associate with quality.
As Joe-user, would you use a severely underpowered web app or a smooth as butter with fancy transitions native one?
As long as that is the case, the "mobile web" as the main method of creating applications will always lag behind.
Another reason is that the OS itself has an incentive to push apps because they make so much money off them.
I hate the "walled garden" environment that's developed around mobile apps. That said, I think native apps are superior in some cases. You can use them offline, they typically get better performance, and they are top-level, right on your home screen, rather than having to go through a browser and search for them. There are some mild other advantages like being able to have alerts and other interactions with your OS, or getting rid of the browser UI clutter entirely.
- Users have a strong preconceived notion that websites on mobile just suck compared to native apps.
- Management allocates less financial and developer resources into mobile web because users prefer native app strongly.
- Developers time and effort are stretched thin for web because management focus more on native app teams.
The mobile web will continue to lag behind native app for a while.