Many folks who are just tuning into the HTML5 saga because of the battle between Adobe and Apple are surprised to learn that the push to create a fifth official version of the HTML specification began six years ago. And that’s just the first half of the story because the latest implementations, while nice, are far from standards. The HTML5 demos from Apple, for instance, are impressive, but they only run well on Safari.
That’s how slowly committees can work. The browser creators and other stakeholders have a big collection of ideas for improving the browser and the Web, and these are gradually coalescing into a fifth generation for the standard. But agreement takes time. Many of the new tags and JavaScript functions exist already as experiments on some of the browsers, but interoperability and standardization are still to come. That’s why the Flash groupies joke about HTML5 being a time machine to take you back to 2000.
While the jokes may sting and waiting for more general adoption is tiresome, it would be a mistake to simply ignore HTML5. There are not only powerful companies behind it, but there’s also the standard process of technological development. The software — both browsers and tools — tends to absorb all of the orbiting extras, incorporating them into the main standard.
HTML5 will change many aspects of life on the Web. It will not displace Flash or Shockwave: One glance at the games on Miniclip.com, such as Jet Ski Racer, shows how much ground the HTML5 committee must cover. But HTML5 will still remake the Web and enable basic Websites to do much more — from tracking our location to storing more of our data in the cloud. HTML5 tags will displace plug-ins for simpler jobs, at least some of the time, and it will open up advanced capabilities to a larger audience. It might even make the Web more secure, more efficient, and more adaptable.
To see where this new standard may take us, I collected the opinions from several developers, programmers, and designers. Here is an unordered list of ways that the Web may change as HTML5 is gradually adopted and standardized.
HTML5 will reduce the importance of plug-ins
HTML5 will enable more interactive graphics
HTML5 will allow applications to tap local file storage
HTML5 will simplify scraping with cyborg data
HTML5 will add a location to the mix
HTML5 will smooth the way to Web video
HTML5 will produce chattier widgets
HTML5 will improve security (maybe)
HTML5 will simplify Web development
HTML5 will reduce the importance of plug-ins
Once upon a time, the Web world liked the idea of a browser plug-in or add-on because it encouraged creativity and experimentation. Sounds, moving pictures, and other neat tricks appeared on the Web first through plug-ins built by Sun, Adobe, RealAudio, Microsoft, and many others. The plug-in interface was open to all, and everyone experimented with adding new features to the old, text-based world.
The battle over Flash may be the most famous skirmish, but the newer expanded powers of HTML5 also threaten other coding silos. JavaFX may be wonderful, but who wants to learn another syntax when JavaScript and the Canvas object will do the job? Who needs the Real ecosystem when the video tag will synchronize audio and video? Plug-ins like these are destined to be forgotten.
Will the idea of a plug-in disappear or fall into disfavor? Perhaps, but it depends on what you want to do. If drawing images is your goal, then the Canvas object may be powerful enough. But if you want to build specialized 3-D worlds like the ones found in the more sophisticated Flash and Shockwave games, you may be pining for the old days when a plug-in could get direct access to the video hardware or run a 3-D game world.
HTML5 will enable more interactive graphics
The old Web loaded images by downloading a GIF or a JPG file. The new Web can build an image on the fly in a Canvas object. Several good graphing libraries have appeared, and all of them make a Website’s graphics much more interactive.
Now the JavaScript layer can compute values and draw pictures with the data. Everything can become more alive and much less textual — if the developer has the time and talent to create the solutions. Adobe is just beginning to make it simpler to develop sophisticated graphics for HTML5. The emergence of such tools will unlock additional capabilities, and the sophistication of the graphics will only improve as the tools mature.
There is a legitimate danger that all of this sophistication will overwhelm the poor client-side processors. In the past, some developers deliberately disabled the Flash plug-in to avoid the headaches and overhead of rendering heavy Flash content. That won’t be an option in the future. Everyone who’s been complaining about Flash may learn that the troubles had little to do with the technology itself — the problems came from the designers battling for our attention.
HTML5 will allow applications to tap local file storage
Web programmers have always been able to store a surprisingly large amount of information in cookies (300 cookies of up to 4,096 bytes in IE), but to do real work you need more room. The early versions of the Dojo toolkit used the Flash plug-in to commandeer a section of the hard disk, but now the tools can simply use HTML5.
This storage can be used for anything the programmer wants, including undermining the entire cloud paradigm by storing data locally on the hard disk. This makes it possible to deliver and install applications that behave just like classic applications. Applications load their JavaScript code from the HTML5 offline application cache and start right up whether or not the Web connection is working.
The technique does not need to undermine the hard work of cloud proponents, though, because the local databases can act like smart caches. Game programmers might store descriptions and artwork locally, saving the time of downloading the information again and again.
On the downside, these databases are buried deeply in the system folder, so making backups may not be the simplest step. Users who may want to move their local data from machine to machine will pull out their hair. Or perhaps we’ll just see a hybrid cloud/local approach appear where the local machine caches the data but the cloud maintains a definitive version that can be accessed from different machines.
HTML5 will simplify scraping with cyborg data
Anyone who’s scraped data from Web pages knows that the structure offered by HTML does little except tell the browser where to place the information. There’s no insight into the data itself, something that would help a programmer make sense of the information. The so-called microformats in HTML5 provide a mechanism to introduce more sophisticated markup into the HTML that makes it easier to analyze the data.
No one can predict just how much change the microformats will bring to the Web, but it’s easy to see how they will empower programmers to whip together solutions. If there’s one nice, standard way to represent dates and times, for example, then programmers can knit together the time-related information from Websites without bothering to write sophisticated parsers that guess at the format one person chose. Calendars, timelines, and schedules drawn from multiple sources become much simpler to craft.
HTML5 will add a location to the mix
To the Web server, we were once just IP addresses, relatively anonymous numbers that had only a rough correspondence to the real world. The HTML5 standard now lets JavaScript ask the browser for the latitude and longitude of the user. It typically doesn’t work with a desktop system (GPS or Wi-Fi required), but it works quite well with handheld smartphones.
No one knows what clever programmers will create with this location information, but it’s bound to integrate cyberspace with meatspace in unpredictable and amazing ways.
HTML5 will smooth the way to Web video
The HTML5 video tag makes it easier for Web developers to integrate video with the information on the rest of the page, opening up the bag of tricks to jQuery and PHP developers, not just Flash, Silverlight, or JavaFX magicians.
Despite this vision, there’s little coherence, as everyone wants to be the ones distributing the codecs for unpacking the moving images and the corresponding sound. The HTML5 standard is codec-neutral, which means that we’re replacing the old world where the add-on software was called a plug-in with a new world where the add-on is called a codec. So there’s a standard video tag, but the browser may or may not know how to interpret the data.
Erich Ocean, an HTML5 application development lecturer who teaches in Los Angeles, believes the codec wars are already won. “Computer programmers (and Mozilla) are fooling themselves if they think they can dictate video standards to video professionals,” he said. “Google’s new format will see some usage, for example in YouTube, but will never reach anywhere close to the ubiquity of H.264.”
Despite the confusion and the lack of complete agreement, the new video tag will unlock more of the power of video and make HTML less and less of a textual jungle and more and more of a video playground. It’s too soon to stop teaching our kids to read, but maybe the handwriting — er, the Webcam video is projected on the wall.
HTML5 will produce chattier widgets
The widgets that run in IFrames have enabled sites to embed information from other sites for years, but they’ve always been limited by the security boundaries that keep each widget in a separate sandbox.
HTML5 offers a standard mechanism for these widgets to talk with each other. They still won’t be able to reach into each other’s sandbox, but they’ll be able to send messages back and forth, coordinating their work and maybe even gossiping about the person typing at the keyboard.
Advertisers will drool at the chance to coordinate the behavior of disparate rectangles scattered across the page, and developers will surely find other practical uses. For instance, a tennis tournament might synchronize players on the left and the right of the page, an effect that may be so maddening that some will go running back to HTML 1.0.
However, this mechanism for sending messages is just a start. There’s still a need to set standards for the information that’s passed, so widgets stand a chance of speaking to each other even when they haven’t been developed with a specific conversation in mind. In other words, they need more of a standard vocabulary.
HTML5 will improve security (maybe)
Each browser plug-in is a separate program built by a different team of programmers with different standards, different release schedules, and different security models. Naturally, some plug-ins are more secure than others. And as plug-ins proliferate they increase the complexity of keeping track of the security faults. Was it the plug-in or the browser that had that nasty hole at the end of last year? Was it fixed by updating the browser but not the plug-in or vice versa? Who can remember?
Replacing many plug-ins with features baked into HTML5 removes the dangers that any of these groups will make a mistake, or worse, that someone will use a plug-in API to deliberately install malicious code. If the security team auditing Firefox, Chrome, or IE does the job — granted, that’s a big if — then the dangers will be fewer.
This claim of better security, though, is a bit of a wild guess. The devious minds may use their malice aforethought to take advantage of the nice integration, perhaps drawing PayPal logos with the Canvas object from scratch to impersonate the PayPal site. No one can predict what the dangerous minds will discover in the new capabilities of HTML5.
HTML5 will simplify Web development
Bill Mill, a developer who works at Lookingglass Cyber Solutions, explains the change succinctly: “I mainly like HTML5 because it allows me to work in one unified environment, the browser plus JavaScript plus DOM, without having to switch back and forth between the Flash world and the HTML5 world. There is one language and one set of tools, not different ones for each plug-in.”
He adds, “I think this is noticeable to the user too, where Flash blobs seem to exist in their own world within a Web page.”
HTML5 offers one language (JavaScript), one data model (XML and DOM), and one set of layout rules (CSS) to bind text, audio, video, and graphics. The challenge of making something beautiful is still immense, but it’s simpler to work with a unified standard.