The debate has raged for a couple of years now around the best way to build mobile apps. I discussed this in my column last March highlighting our IDC prediction that native and Web development will coexist. For 2014, we are going further and asserting that for mobile apps, HTML5 will not replace native development for the 2017 planning horizon, though certain parts of the technology, such as WebSockets, will mature for widespread mobile use.

So where is HTML5 now? To put it in Dickensian terms, these are the best of times for HTML5, these are the worst of times for HTML5. It’s the best of times because the technology is moving faster than ever and it has continued to hold developer attention. A large number of important companies are working furiously on evolving the technology, and all modern browsers now support it to a significant degree. Browsers are being updated at a dizzying pace, and new HTML5 features are being added or improved constantly.

But it’s also the worst of times, because a number of high-profile efforts to develop important high-scale applications in HTML5 have failed (e.g. Facebook and LinkedIn), and as of today, few startups would risk implementing their flagship mobile application on HTML5. HTML5 has so far failed to be the imagined unifier of mobile development, and it is far from toppling native application platforms (e.g. iOS and Android) as the primary means for developing mobile applications.

What is going well with HTML5?
HTML5 is in fact being widely adopted, especially on the desktop. Desktop browsers now support almost all the key features, and many enterprise and consumer applications are refreshing their UIs to use more HTML5 features. An HTML5 gaming ecosystem has begun to mushroom with casual games like Bombermine and Battle Fish engaging the free-to-play desktop gaming world, and technologies like WebGL are starting to be used now that it is supported by IE11. New app builders like Construct 2 have sprouted for casual mobile developers, and new versions of Android and iOS are sporting improved browsers (notwithstanding bugs).

Additionally, it is important to remember the powerful key attributes of HTML5, such as its evolutionary nature in adding capabilities, the enormous range and scope of the technologies it covers, and its intent to address all platforms as long as they run a browser. We should also remember that HTML5 enjoys incredible vendor support, with major players like Google, Microsoft, Apple, Intel and Adobe staking out aspects of leadership. HTML5 has incredible ecosystem goodwill and support, and two—not one—standards bodies determined to drive it forward. HTML5 is a technology that will go places, that is a given.

What’s not going so well with HTML5?
Mobile HTML5 still has work to do. Let’s run through the big five areas of challenge:

1. Extreme pace of device change and fragmentation. Mobile devices are evolving at a furious rate. New platforms continue to be minted and launched, and smart screens keep proliferating into non-traditional areas such as fridges and oven doors, not to mention wearables.

Within platforms, iterations come fast and furious, and fragmentation in screen sizes multiplies. The Internet of Screens is effectively in a state of constant mission creep, mitigating against the point of closure on what might be considered a complete HTML5 specification for developers and tool makers to lock on.

2. Weak mobile browser implementations. Perhaps as a consequence of extreme device flux and fragmentation, many mobile platforms still sport weak browser technology from the perspective of HTML5 support. The platform owners are simply too interested in native application ecosystem monetization through app stores that their focus is simply not on the browser sub-platform of the device platform.

3. Inadequate tooling. One of the biggest complaints cited against HTML5 by developers is the lack or immaturity of a full portfolio of development tools. The aforementioned pace of device change and complexity—as well as the expansiveness of the standard, with its diverse components (e.g., HTML5, JavaScript, CSS, Canvas, WebGL) each requiring unique tooling approaches—are important reasons. But the lack of a single powerful ecosystem leader willing to focus the company’s R&D on a complete tool chain is also a problem.

4. Developer skill immaturity. Technology newness also means that while it is not hard to find palpable developer excitement around HTML5, the reality is that mobile developers are still getting up to speed with the technology. The Web ecosystem of developers is a very large one encompassing many programming languages, frameworks and technologies that are both broad and diverse (e.g., Perl, Ruby, PHP, JavaScript, HTML5, REST, ASP.NET, Silverlight, Flash, etc.), making mastery and expertise challenging.

5. Security. It is ironic that a heavily sandboxed platform can be less secure than alternatives. But the very size and expanding scope of the Web and its dynamic nature, where websites are applications and applications are not installed with deliberation or scrutiny (installing is just clicking!), means that Web users are exposed to an enormous world, a significant part of which means them harm. Additionally, the breadth and newness of HTML5 means that there is significant software surface area to stabilize and inevitable vulnerabilities to eradicate.

Bottom Line: HTML will see expanded adoption and will make inroads versus native technologies, but native platforms will continue to be more controlled, learnable and better supported. HTML5’s more certain early successes will come in casual gaming, mobilizing of enterprise software applications, and in in-house business-to-employee apps.

Al Hilwa is program director of application development software at IDC.