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.
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.