HTML5 has quickly emerged as the leader in mindshare on Rich Services Cloud and Web development, as well as the focal point for the debate between Apple and Adobe on standards, platform abstraction and ease of development for the Cloud. This discussion is by nature multi-faceted and somewhat complex. In this entry, I put forward why I see HTML5 is the future of Cloud and Web.
What does HTML5 provide? Improved network communications and browser storage features; implements Web Sockets which provide a website with an API that opens an ongoing connection between an app (on the device) and a server, so that information can pass between them in real-time; helps Web apps work better when devices are intermittently connected, as is generally the case with any mobile device; lets Web apps store more data inside the platform, retrieve it more intelligently, and control how the platform saves parts of pages for faster loading; implements the newest version of CSS to make Web pages more responsive to user input and to allow for higher-quality graphics; provides improvements in the way browsers handle forms will reduce the amount of javascript needed and speed up page loading, particularly on mobile devices; and reads the markup used to build a page and figures out how to display it, making browsers more interoperable, particularly in the way they handle badly written code to give users a more consistent experience.
Importantly, HTML5 standardises the user interface markup language, which is used to declaratively lay out the user interface of Cloud and Web applications, implement application behaviours, and hook in business logic. This is a critical step in interoperability and bringing more developers into the Rich Services Cloud/Web. Although Adobe Flash/Flex and Microsoft Silverlight provide greater power at present, these are principally proprietary technologies (MXML and XAML), and thus by nature have limited audiences at best.
HTML5 is already being used by a number of Cloud services and web sites - YouTube and Vimeo have rolled out the video element, and others are using Canvas as well as offline storage, to enable both mobile and "desktop" Cloud and Web.
HTML5 is hard to beat for simple interactivity, including charting, some limited 3D vector graphics, image transforms, video, audio. It is possible that 90 to 95% of an average enterprise needs could be met by HTML5. There are only a few classes of corporate apps that would gain significant benefit from Flash, Silverlight or other Rich Services platforms over what is available in HTML5.
There are some features of Rich Services Cloud/Web that require richer interaction, such as direct manipulation of graphics, real-time notifications and alerts, high-speed binary communication protocols, tight integration with local hardware capabilities, and extensive offline processing. Flash/Flex, Silverlight and other Rich Services platforms all provide rich feature sets to support these requirements.
However, the emerging HTML5 platforms, in particular Google Chrome, all provide extensibility and native library integration, through which these requirements can be supported. Support for high definition The day when these requirements can be supported in any HTML5 platform is quickly approaching, which is why HTML5 is such a strategic threat to Adobe and Microsoft.
Adobe is the most impacted in the short term — because Microsoft has some solid territory in enterprise IT environment (for example, Silverlight is leveraging the success of the Sharepoint portal), and enterprises do not shift direction easily. Also, Silverlight leverages .NET developer skills directly. By contrast, the consumer Web (especially the smaller more agile Web properties) can change direction and platform more quickly. Flash is used in 70% of high traffic Web sites, but some of these uses are surface-level and easily removed. (yet, it will be harder to turn large scale ad-engine operations around)
The iPhone and iPad throw a harsh spotlight on Flash, at least for those readers who only read about Apple’s side of the story in the mainstream press. Apple says that Flash is low-performance, insecure, drains battery life. Yet any large powerful app will consume CPU and battery , whether that app is written in Flash, Silverlight or HTML5. Simple apps consume minimal resources, and most HTML5 and Flash apps are simple. Complex apps with high interactivity and large amounts of computation will consume CPU and battery no matter what technology they are implemented in. Some may be better than others in this regards — perhaps even 20% or 30% better –but such differences are incremental, not game-changers, in the big picture.
The iPad and iPhone do have the potential to change the rules of the game a bit with their customised platforms - for example, their ability to decode HD video without draining battery life quickly (Apple claims 10 hours).
Yet the choice among these technologies is not “all or none”. One approach that many, if not most, organizations might end up pursuing is a hybrid approach — sometimes known as “islands of Rich Services” or supporting “hot spots of interactivity”. In the near term, this requires a plug-in based approach, such as Flash or Silverlight. Over the long-term (5 years at the outside), HTML5 will fit the bill.
Flash has a definite advantage with respect to deployed infrastructure. A pragmatic perspective should look at the numerous tools, ad engines, business processes, infrastructure and platforms that support and/or enable Flash-based advertising. This aggregate mass will take a long time to shift to an alternative, no matter how good that alternative may be, due to sheer inertia of large scale systems that are operationally functional. Also, Flash has a long record of being light, fast and (reasonably) secure, which is why it is found in 98% of Internet connected PCs, and why it succeeded while other approaches failed in the market (client-side Java, ActiveX, WPF, etc). This does not mean Flash is the optimal choice for a Web page that requires simple interactivity (any more than Silverlight would be).
However, a significant majority of Flash content on the Web does not need to be in Flash. Although there are tens of thousands of Flash-based games, there are millions of Web sites that use Flash in a simple manner (for basic interactive content such as banner ads or splash pages). One could argue that much of this content is of low value (users get “banner blindness”, and are habituated to skip useless intro or splash pages). Regardless of its value, much of this simple interactive content could be replaced today’s HTML5 working subset, although only from a browser technology perspective.
Until now, average enterprise hasn't effectively used Flash or Silverlight, due to their proprietary nature, and the root causes for sub-optimal user experience residing with lack of appropriate process, and governance, and lack of a genuine commitment to a quality user experience. For an extensive time, very few organizations have centered development around user needs by relying on objectively measured data about user behaviou, and haven't cared enough about the user experience to change their habits (developer-driven, vendor-driven, stakeholder-driven).
Yet the failure of traditional Web applications in terms of interactivity, offline-mode and scalability, and the emergence of Cloud computing, have brought this issue back to the centre of attention of end users and developers alike. Combined with HTML5's simplicity and standardisation today, and power and flexibility tomorrow, this highlights how HTML5 stands to make its greatest impact on Cloud services and Web applications going forward. This intersection of requirements and capabilities are where HTML5 will change the game the most.