By sandboxing App Stores and development processes, the major players have taken on the problem of developing their app stores. Although HTML5 promised to be a universal platform, iOS, Windows 8, Android etc. make those apps second-class citizens to the native App Store versions, forcing developers to choose which platform to develop for as an initial target.
This becomes a problem for upcoming platforms that quickly need to build App libraries to legitimize their proprietary platforms, mainly because they want it both ways: they want to lock developers time into their platform, and they want those developers to do it when there is no critical mass in that platform. From a developer perspective, why would I write for, say Windows 8 first when I can spend the same effort on a known distribution base: iOS? Ideally I would like to write for all platforms with one codebase. Of course if the platform creator is trying to ramp up by funding key developers and projects that can work for a while, but it presumes the target audience’s planned use for the new platform.
A simple solution would have been to allow web-based technologies to acts as a virtual machine that could be further compiled to native code for performance boost, much like Adobe is attempting to do with AIR. This would allow a write-once platform with closer to native performance, unlike, say PhoneGap which is forced to work in a browser window and so is not really a native App. Performance on, say, smartphones and tablets, is quickly becoming good enough that a small performance hit would be acceptable.
Being proprietary does not in itself attract developers – being a good return on investment does. It may be that the performance gap between native code and HTML5-based apps is not closing as fast as it could because platform creators do not think this way.