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.