There has been continued discussion around the relative merits and drawbacks of HTML5 in recent months with public comments from industry figures on their development strategies.
As recently as last month, Mark Zuckerberg admitted that the ‘biggest strategic mistake we’ve ever made’ was depending too heavily on HTML5 – a refreshingly candid assessment of their open web standards strategy.
Whilst Zuckerberg isn’t anti HMTL5, it’s telling that one of the giants has held their hands up to say that they should have taken the route of native development. Likewise, Renée James, Senior VP of Software and Services at Intel: ‘HTML5 is designed to be a cross-platform technology… and while I know there are a lot of differing opinions, we all agree it’s been very overhyped.’
However that’s not to say that there is no future for HTML5.
Industry analysts Gartner, in their 2012 Hype Cycle for Emerging Technologies chart, showed HTML5 as nearing its hype peak and has predicted that it will become a mature technology in the next 5 – 10 years.
Certainly in the consumer space, for users to share content, to collaborate and to present generic media such as video, audio and images on a multi-channel platform, HTML5 has its advantages.
However, businesses require transaction-based mobile applications and I’d argue that there are fundamental issues which must be addressed before HTML5 can be considered a viable solution for enterprise applications.
One critical issue for developing business applications in HTML5 concerns the rendering of objects. Although HTML5 is a standard, the rendering happens outside the control of the developer, on the browser.
Objects are downloaded at a different pace, depending on size, and the rendering and synchronisation from different objects is down to the built in capabilities of the web browser.
Further, different browsers have different levels of support for HTML5. The varying mobile browsers, with different versions, from Opera to Firefox, each have different levels of compatibility with HTML5.
Take into account the fragmentation of the Android market and you begin to realise just how many different versions of web browsers exist and how many variations must be considered when developing.
With HTML5 the aim is to move away from deploying natively, and deploy once; however, if you are to support the multiple versions of browsers for HTML5 deployment, then a plethora of patches will be required to make each different browser’s version compatible.
Needless to say, tests will then need to be conducted to ensure each patch works correctly. These actions add numerous man hours for the developer.
One of the advantages of HTML5 is that it has an excellent look and feel but lacks back end processing.
Developing with this architecture essentially requires three different development projects; one for the client, one for the server and one for the communication between the client and server.
Even though it is easy to make changes to the client, this automatically triggers changes in the communication tier and in the back end. By its nature, the asynchronous synchronisation requires the developer to manage the authentication process from the client and server for each request.
Furthermore the entire context management system needs to be managed by the developer. This is why enterprise projects built on HTML5 don’t meet expectations; they tend to be over budget and over time as they take longer to deploy and incur greater risks.
WebSockets is an exciting enhancement to the HTML5 protocol. It was developed as an independent TCP-based protocol with the mechanics to communicate directly with the server and the client over a full-duplex communication channel that operates through a single socket over the web.
The WebSocket protocol makes it possible for greater interaction between the browser and website. This increases the speed of synchronisation between objects and greatly improves security. It also allows for better real time communication with the back end server and the client.
The WebSocket API is currently being standardised by the W3C, as they look to release the final HTML5 specification in 2014.
The WebSocket protocol was designed to work well with existing infrastructures; however the way this is implemented will require a HTTP upgrade which most of the routers in the world today are not able to support.
It will take time for firmware updates, router updates or DNS updates to take effect to make this technology fully effective for enterprise applications.
The motivation behind HTML5 is clear, offering potential for cost savings while also offering a simplified delivery process and the ability to always run the latest version of the application.
It is, however, the prematurity of the technology which is causing many mobile business application disasters to date.
An alternate does exist, and as Gartner found in their latest Magic Quadrant, a solution is required as ‘61 percent [of respondents] plan to enhance their mobility capability during the next three years, and 48 percent believe they will become leaders in their industries by fully adopting innovative mobility solutions.’
A Mobile Enterprise Application Platform, or MEAP, a suite of products and services that enable development of mobile applications can provide the ability to develop to any mobile device, in a single effort with the added benefits of reliable security, rapid back end data delivery and a quickly evolving application development cycle.
The hype around HTML5 continues to gather momentum, yet, as a reliable development tool for the enterprise it will not be ready for another 2-4 years. Until then HTML5 will remain best suited for the consumer applications and a ‘work in progress’ for the enterprise projects.
Click for the online version