Several times over the last few months I've argued that we're on the threshold of new kinds of Web applications. Let's look at a few concrete examples.
I'm not writing about "Web 2.0". As influential as it is, from a software standpoint, all the "social networking" -- mobile Twitting, collaborative sourcing, and-so-on -- is nothing special; nearly all of it was at least implicit in the protocols of 1993 or so. It's not hard to caricature these as highly-automated form handlers. While that's certainly not how new adopters think of them, the existing implementations reveal their ancestry to a little archaeologic digging.
What is new, though, are the multimedia objects in HTML5. Yes, the Web has supported graphics for almost 20 years, but it's only with the standardization of SVG,
audio, that multi-media began to approach the first-class citizenship of text: now they're programmable, not just present:
- Mobile is easily the hottest segment of programming, and vendors are exposing native APIs as HTML5;
- Many of the special effects for which we used to turn to Flash are increasingly practical -- and sometimes even superior! -- with standards-based codings. Gordon is an extreme instance of this trend: not-ready-for-prime-time, but eye-opening in its own way;
- while tubefy's intriguing special effects look like the kinds of party tricks programmers have been pulling as long as there have been late nights and spare video tubes, these are based on published standards that makes them available and fast on a wide, wide range of platforms. normalGradient is only a tiny corner of what SVG can already achieve, moreover; and
- SmashingMagazine demonstrates as well as anyone the range of HTML5 capabilities.
All these techniques are available now. For a tech preview of what's just around the corner, see the latest HTML5 preview.
One of the frustrations and motivating challenges of work in this area is the difficulty of getting across the range of possibilities now opening up. I'll be back over the next couple of months with more examples that you can use in your own work, whether you're programming for the latest handheld or are stuck maintaining for IE 5 compatibility.