The Web
The Web keeps trying to be the platform of the future. Netscape tried it. Sun tried it. Microsoft sort of tried it in their own typical half-hearted way.
The latest buzzword to grip the Web is AJAX, a buzzword so significant that it justifies an entire new major version of the Web. Of course, those of us whose mothers told us to avoid .0 releases of anything like the plague are still somewhat wary of Web 2.0; we are waiting for at least Web 2.1 or possibly Web 2.2b before we join in the bandwagon jumping.
The basic idea behind Web 2.0 is that you can write your GUI in a combination of HTML and Javascript and write your back-end code in whatever language you like, and have the two communicate over the network. Anyone paying attention in the ’80s will find this very familiar; Display Postscript and NeWS both did the same thing, although they used PostScript instead of HTML and JavaScript. Oh, and they both failed; it turned out that no one liked having to write views in a different language to models and controllers.
The biggest problem with AJAX (apart from trying to write views that look the same in different browsers, and the speed penalty of doing so much in JavaScript) is that HTTP is really not designed for it. HTTP is a stateless protocol, whereas applications want to have a statefull connection between their front and back halves.
If only there was a statefull protocol we could use for sending XML. An XML protocol for messaging. If we’re using it for messaging, perhaps we could also use it for sending presence information. Let’s call it the Extensible Messaging and Presence Protocol, or XMPP for short.
Once again, the magic protocol pixies have delivered, and we find that XMPP not only exists but is also an IETF-ratified standard. Rather than shoe-horning XML queries and responses into HTTP, it would be far more sensible to keep an XMPP connection open between the server and the browser and use XMPP info-query stanzas for this messaging.
Will this happen? Maybe. At the very least, AJAX is introducing a new generation of developers to programming asynchronous message-passing systems—a skill that will be essential in the UbiComp world.