Zuckerberg Was Right, but HTML5 is Not the Problem - Apple, Google, Microsoft & Developers Are!
It must have been my maturity that kept me from responding immediately to the headlines spawned by the Zuckerbuerg HTML5 comments. I am glad I waited and did some further research because I think the comments were aimed more at Apple, Google and Microsoft than HTML5. To be specific Facebook further articulated the problems they experienced as poor HTML5 implementations in mobile browsers.
As I read more details about Facebook's struggles I could not help but agree with some points, but others I saw as just poor execution on their part. I will address the poor execution in time, today I want to pontificate on the bigger problem, HTML5 implementation strangled by browser vendors and the bureaucratic standards bodies.
Apple, Google and Microsoft are all trying to capitalize on proprietary apps they control curation and distribution. They not only receive 30% of the developer's revenue (an extremely high tax by any means) but they are creating artificial platform lockin for consumers and businesses. Apple is obviously the best at this scheme. iOS users spend more than all the other platforms combined. This means a user that spends $50, $75 or more on games, music and other media is far less likely to change to a new platform no matter how much better the new platform might be. These assets are generally not transferrable to new platforms.
Of course this stifles innovation and customer service. Apple revolutionized the consumer computing experience with the iPhone and the iPad. But recent updates have been far less spectacular. Other platforms are obviously copying the broad experience and some are innovative, like Metro UI, others not so much ( see Sony).
Apple more or less created what we call HTML5 only to essentially stop caring about it when developers said they would be willing to give them 30% in exchange for platform lock in native applications. I don't really blame them it was an unexpected gift of massive profit, any business would take it and run. As a developer this has always baffled me, especially with so many Apple fanboys being open source advocates. They seem like huge hypocrites in my opinion.
Realizing that developers are crazy enough to participate in the app ecosystem other platforms followed; Google, Microsoft, etc. Obviously the other platforms are not seeing the same success. For Google the Android experience is poor, even on newer devices compared to their iOS competition, and don't get me started on fragmentation. For Microsoft it's been more about platform adoption. Cell phone carriers just won't sell Windows Phones yet. So the potential market is too small to matter. Other platforms have the same problem.
What went wrong? Somewhere along the way HTML5 seems to have lost its way or at least the actual implementation. Google almost does a good job implementing the specs and occasionally innovating in desktop Chrome, but neglects its mobile browser offerings. Apple follows behind implementing the standard they initiated. And don't get me started on IE which seems to always be behind.
Don't get me wrong I think IE 10 is probably the best browser today, but give it a few weeks and Chrome will eat its lunch. To fix this the IE team could increase their delivery cadence to battle Google. Apple should do this as well.
One of the reasons I think IE might be the best browser for the short term beside broad HTML5 feature support it showed a sign of innovation with the MSPointer event model. Instead of copying the Apple Touch API like Android, Microsoft decided they needed to create something different, even better. Its better because it is an event model that fires for touch, mouse and pen inputs. I think it is technically superior, but more importantly it is a sign that Microsoft actually gets the point I am trying to make in this post, just implement HTML5 already.
I keep examining why Microsoft decided to stop just short doing HTML5 right with IE 10 and Windows 8. Instead they decided to do a great implementation of HTML5 standards, but only if you make Windows Store Applications. For example they decided to omit the Media capture API and made live tiles a 2nd class citizen (an innovation, not an HTML5 specification). And for the record Win JS applications are running in an instance of IE 10 wrapped by a thin native frame.
Is there precedence? Yes, Mozilla has a browser, Web API, that implements much of the hardware APIs intentionally left out by other browser manufactures. So yes it can be done.
Why not just make these features broadly available to everyone in IE 10? Why not be a disrupter and more or less force the end to the curated operating system store? They could deliver a crushing blow to Apple almost immediately.
Well maybe not immediately, I mean developers would have to learn how to build good HTML5 apps, which maybe that is the biggest barrier to entry, us. I have immersed myself into modern web application development the past few years. Even after a few years I feel I still have a long way to go. I have done little to nothing with multi-media and I still feel weak with animations just to name a few issues with my personal skill set. But adjusting my mindset to actually build modern web applications I believe I have achieved. But my interaction with the masses tell me this is not common.
Understanding what touch and mobility mean to application architectures still seems foreign to the average developer. Thinking in terms of slow data service, usage context and offline mode is new and awkward to most. Understanding that an application is centered around the API and not a bulky client implantation is still odd, even after years do software as a service implementations.
The burden is on both platform vendors and developers. They need to just implement and stop making excuses. Standards bodies are nice, but take far too long to define standards. We as developers need to have enough confidence to create abstractions like jQuery to create a more normalized implementation.That is the free market at work, where we as the customers will fashion an implementation we want and can easily use.