TheHTML5revolution



These days, HTML5 is all the fuss, with a myriad of articles, posts and publications about it. There’s a lot of talk about drag’n’drop, 3D, new opportunities for layouts, forms, graphic design and typography, and so on.


However, this look at HTML5’s potential is very simplistic. Fact is, the standard opens a whole new world of opportunities, which will radically transform the way we design and use software. And the recent supremacy of web as the main application platform with shifts such as Web 2.0, Cloud Computing, SaaS and PaaS, will only increase that.



Che Guevara

The HTML5 usual suspects

HTML5 is the latest evolution of HTML, the predominant markup language for the web. It’s an open, interoperable standard, with public technical specs and free access and implementation. With HTML5, the nature of the standard and the way it’s created has changed. Now it’s more a standardization process than a stable standard. As such, it should go on evolving, but in theory it shouldn’t change of name anymore.

But who is responsible for the standard? Who decides what’s in the standard and what’s out, and following which process? There are in fact several players, whose diverging and contradictory opinions are the source of problems and confusions. The main organizations involved are the WHATWG, the W3C, and the IETF, whose members are all stakeholders, at different levels. Within those organizations, the key players are the large companies and foundations that have the needed resources for regular and major contributions. Which raises a question both from a technical and political standpoint: who implements what – which part of the standard – and how?

In a schematic way, the W3C works like this for HTML5: specification proposition, implementation, standardization, and finally official integration within the standard. If a specific proposition isn’t implemented by anyone, it’s dropped. The advantage is that only useful and technically functional specifications are implemented. But there’s a risk that key players can hinder implementations that don’t fit their agendas or compete with their own research. Another downside is the competition between the different solutions trying to be in the lead. One of the most known examples is that of the <video> tag and the formats it supports – an issue addressed in Scale #2 "The Quest for Open Video Standards".

HTML5’s official recommendation date is set to 2014. By then, it will be a recognized web standard and every specification currently discussed or implemented will be standardized. But it’s possible other propositions will occur meanwhile, paving the way for the next evolution. At present, all browsers implement specifications incrementally, adding new features to each version following their own agenda. It’s interesting to note that, for Internet Explorer 9 and 10, Microsoft is making huge efforts on implementing the new specifications and catching up with its rivals. Sites like html5readiness, visualize how the various specifications are supported depending on the browser.


Swiss-army knife

The Swiss-army knife of the web

HTML5, like its predecessor HTML, is so much more than a simple tag language structuring a web page. The set of specifications making up the standard allows specifying how code will interact with the page tags. It also manages the browser interactions with other components, both hardware and software. From this standpoint, it’s obvious the standard was designed to allow the development of web applications.

The browser-component interactions are managed through various APIs, among which, the most well known are canvas, WebGL, audio and video… But as far as web applications are concerned, there are other, much more crucial APIs, notably:

  • - Offline application management, thanks to the manifest file that enables the browser to create a local copy of all the files needed to run an application in offline mode. The JavaScript API Navigator allows for knowing the connection status and managing the application updates.
  • - Context and local data access with two main APIs already available, geolocation and FileSystem, important for both mobile and desktop applications. However, they have very high security constraints.
  • - Local Storage that allows an application to store data on a user station for later use, safely and without size limit – a feature interesting for offline access for example.
  • - Client-Server data exchange with Web Socket, which is bidirectional, or Server-Sent Events, unidirectional.
  • - WebWorkers, which allows for implementing long asynchronous processing. Those processes outside of the main loop are very useful for advanced graphics processing, complex calculation tasks, or handling of large files.

Even if specifications, such as geo location, Client Storage or Web Sockets, were, strictly speaking, taken out of HTML5, they are often developed by the same people or organizations. What’s more, used separately, both HTML5 and these features become significantly less interesting. Thus, there’s a tendency to consider them as a seamless whole under the HTML5 umbrella.

If the web was originally created to make content available and access it, in the last few years, there has been a shift to this paradigm, with an increasing availability of applications that are no longer only server-side, but also client-side. The challenge hence becomes delivering to users web applications as rich and allowing as complex features as desktop applications. Such an offer will imply, for both editors and users, the adoption of new business models, like SaaS.

Web applications have many advantages. No longer is it necessary to buy costly licenses or purchase servers only for time-to-time use. Users no longer have to perform long and complicated software installations or updates. Applications are accessible from anywhere, whatever the device or platform. It’s very easy to see how rich and interesting are the domains covered by HTML5: it goes past browsers and web agencies, and is beyond rich interfaces.


Liberty

What HTML5 is going to change

How can we know what web will be like in a few years? How HTML5 and the next innovations are going to impact not only web companies, but also all the others? For Ori Pekelman, Technical Expert at af83, the HTML5’s transformative effect on industries and businesses is potentially even more disruptive than cloud computing. "We may soon have at our disposal professional online CAD applications. The French company Structure Computation already offers an online software suite for complex-structure computations." And the rise to power of web applications is eventually going to question the economic viability of professional software, whether or not it’s niche. In France and the entire world, the ecosystem of IT service and software editing companies risks facing severe disruption, if it doesn’t jump on the web application bandwagon.

On the other hand, if HTML5 allows developing applications running on any platform, there’s also an opposite trend with the rise of application stores following the example of the Apple AppStore: Intel AppUp Center, Microsoft AppStore for Windows 8... As for Google, the company offers HTML5 applications on its Chrome Web Store, but is also working on a native application portal in Chrome. Thus the approach that will prevail is still an open question.

"Nothing’s carved in stone... It’s too early to foretell if web’s going to turn into a set of walled gardens, or into collaborative web applications leveraging the power of Linked Data [Ed., publishing data on the web under a structured, linked-to-the-network and non-isolated form]", adds Ori Pekelman. In other words, either the supremacy of app stores offering a range of closed services exclusive to a specific platform, or a fully open web. For him, "both approaches will be coexisting for a while."

Threatened by HTML5 on their traditional businesses, the historic key players of the IT industry are putting up resistance. However, market demand and competitive pressure should drive the different actors to make the leap to HTML5. And the standard’s native support in most new devices (smartphones, tablets...) will be key to its widespread adoption.

Nevertheless, the rise of web applications poses problems. Currently, the service providers become owners of the user data hosted on their applications, like on Facebook or Google Docs, among others. Besides the ethical questions that arise from this situation, it’s unlikely it will be accepted by companies when it comes to customer databases or critical business and technical documents. To guarantee the users’ freedom, and the long-term success of web applications, it’s thus necessary to uncouple the data from the application itself. Projects like Unhosted should allow guaranteeing that in the future.

Finally, the main challenge for companies, beyond the shift to HTML5 and web applications, will be to become aware that organizations like W3C or WHATWG are crucial for them. Considering the massive impact of the technical changes, it’ll be important for them to get involved in such workgroups and make their voices heard, in order to not only undergo shifts, but also contribute to and influence them.




Our Recommendations

1. Make the leap
Even if there’s a temporary risk of functional and performance loss for the first applications betting on HTML5, don’t be late! They may not be on a level playing field with native or desktop applications yet, but with the continued advances of device capabilities, they’re set to outclass them soon. And if you haven’t gotten into it by then, the odds are high one of your rivals has.

What’s more, HTML5 adoption puts new devices within the reach of your applications. For example, Windows 8 Metro applications switch from XAML to HTML5. Intel’s dropped Meego for Tizen, switching from native apps developed with Qt to HTML5 apps. Imad Sousou, Intel Open Source Technology Center Director, asserts, "We believe the future belongs to HTML5-based applications." The "Write once, run anywhere" mantra is finally going to become a reality.
2. Be in control of your data
With the new online applications, data are more and more scattered: in user stations, at application providers, on cloud servers, and more. This situation forces companies to wonder about key issues: Who’s in control of their data and how? Can they easily retrieve all of their data, when they wish or when the service is shut down? Will they be able to port it to another system (application, server...) or is their format a closed one? Are they really sure that their sensitive data remain "private"?

A second issue of information durability and permanence adds up. Data has to be stored in a persistent way, and mustn’t be impacted by any occurring failure. What’s more, obsolescence in the IT industry is only increasing, and organizations have to be sure they’ll be able to access their data as long as needed, which requires controlling the formats used. Of course, in that case, interoperable and widely spread formats are the best solution – failing that, they’ll have to make sure of their ability to convert them quickly and safely.

These issues have to be considered from every angle when it comes to choosing a solution, depending on your use, needs and requirements.
3. Don’t underestimate HTML5 application complexity
Beyond the intrinsic complexity of HTML5, in particular for its APIs, an HTML5 application requires more and more JavaScript use. However, depending on use cases, its implementation can turn out to be more complex than expected (mastering jQuery isn’t enough). This is why setting in place technology watch, getting trained, and experimenting are more than ever necessary. A team of skilled developers will also allow you to get the most of HTML5 and JavaScript combined.

Moreover, it’s crucial to have at your disposal the suitable tools, with frameworks such as Backbone.js or SproutCore. Other tools allow producing JavaScript code without writing any, notably those two Google tools, GWT, a Java Framework, or their latest offspring DART, but also CoffeeScript.


Required readings

Here are some resources about HTML5, among the many available online:
- one of HTML5 "bibles,", dealing with the major features of the standard
- a set of resources on HTML5, code examples, tutorials, sandboxes
- an overview of each feature’s support, broken down by browser and browser version
- the HTML5 specifications
- HTML5 demos by Mozilla, with monthly challenges, Apple and Microsoft
- knowing which HTML5 elements are used on a website with the HTML5 periodic table
- An ironic question: is HTML5 ready yet?


And also some more practical resources:
- for mobile development, "mobifying" an HTML5 website and appMobi, a set of development tools
- tutorials about EventSource
- a great book on the FileSystem API
- some WebGL demos
- two 3D libraries, three.js and glge, to make 3D with the WebGL API easier
- the WebWorkers specifications

IETF, W3C, WHATWG?

The IETF is an organization with no formal status, members or membership, which originally wrote the first HTML official specifications. Its work is focused on internet protocols and standards.

The W3C is a standardization organization currently involving more than 450 members, big companies, groups, foundations, and public bodies. It has superseded the IETF in what concerns the HTML and published the later versions of the standard.

The WHATWG is a breakaway group from W3C, formed following disagreements between them (notably on XHTML 2). It’s made out of numerous web browser developers through a non-official collaboration. Its members wish to give priority to a format for web application development. However, several members are also active within the W3C. The group was the first to work on HTML5. Its working procedure, contrary to the W3C’s, is "Commit-then-Review" (i.e. implementing evolutions before reviewing and standardizing).




Unhosted

Unhostedis a project launched by Michiel de Jong, for whom software is free only if both the code and the data are free. This opinion led to a new solution: keeping separate the web application and the data it uses, contrary to the common current model where data is stored on the service provider’s servers. With Unhosted, the user is always in control of the data, which can be stored either on its own hardware, or at a trusted third-party. In this model, the browser processes the data, encrypts it before sending to the storage server, and deciphers it when it comes in.

This approach also allows the service provider to have a significantly reduced data load on its servers, hence lesser costs, as it only hosts the application source code. This should help the Free players offer large-scale applications more easily. The Document Foundation, which develops LibreOffice, is currently working with Unhosted for its online suite LOOL. The suite should be released for general public late 2012 or early 2013, and position itself as a serious rival to Google Docs.

Leave a Comment about Scale#7

Scale comments powered by Disqus