Web of Confusion
'The question is,' said Alice, 'whether you can make words mean so many different things.'
Through the Looking Glass, by Lewis Carroll.
It would seem my previous blog caused a few minor ripples in the blogoshpere. But it only scratched the surface of the issues surrounding Rich Internet Applications, where they could one day take us, possible routes getting us there, and what pitfalls could be lying in wait along the way.
The switch from solitary working on a your personal laptop to collaborative working across the internet may hold great promise, but such applications are still in their infancy. Success will demand navigating through some fundamental changes. While advocates focus on the changes within the software itself, they all but ignore the impact on the supporting environment: the operating systems, the file systems, the Explorer/Finder desktops, and even in underlying network architecture. And that's before we even take into account how it can all go wrong, or how publishers are expected to make money from their applications.
There's easily enough material for a book, let alone a single blog.
But before a single toe can be dipped into these murky waters, one ugly problem stands in the way. It was evident in some of the commentary sparked by my previous blog, and as you may have guessed from the quote which opened this text, it's a problem of terminology.
While my previous blog sought to attach some (satirical) labels to different RIA strategies, in this blog I want to peg down a couple of existing terms which have been flapping about like mad in the forums and the blogosphere.
Where Tim Got It Wrong and Macromedia Got It Right
In his now (in)famous article, What Is Web 2.0, Tim O'Reilly catalogued several distinguishing aspects of web sites attracting notice at the time of writing (late 2005), going on to combine and extrapolate their functionality into a set of patterns and models which he claimed defined a new type of collaborative, user content driven, online application.
I'll not argue with much of what Tim wrote. His reasoning and conclusions are more than sound enough, even if not everyone shares his enthusiasm. Where I take issue with Tim is the small matter of the distinctive "Web 2.0" moniker he assigned to this new type of application. To be blunt, it points directly towards the World Wide Web as a technology. Hardly surprising, when one considers that so do the examples which illustrate Tim's article.
To be fair I seem to recall Tim recanted his use of the word "web" in comments to a blog some time back. (I'd present a link, but I'm afraid Google has failed me... Anyone?) If memory serves, he admitted the future may not lie entirely inside a browser, and I think suggested something akin to "Internet 2.0" or "App 2.0" as alternative labels.
But the problem isn't directly with Tim's article, but the two distinct variations in its interpretation. For some "Web 2.0" is literally that: collaborative applications with HTML/Ajax as their UI and the browser as their platform. (In terms of my taxonomy this is strict Browserism.) For others "Web 2.0" is a more flexible term, inclusive of desktop software and applets. (Under the taxonomy this is can be anything from Browserism to Neo-desktopism.)
Both treatments agree on the focus around UGC (user generated content) and collaboration, but differ on whether Tim's web centric description is merely allegorical or literal.
Moving on... If you do any reading around Rich Internet Applications you won't get very far before you're referred to the March 2002 Macromedia white paper which (apparently) originates the term.
Naturally this document heavily promotes Flash innovations of that period. But, minus the marketing spin, the definition for a new rich client software platform is by-and-large still quite sound.
Again, the problem is not with Macromedia's definition of Rich Internet Applications, but the way it has been adapted and extended to the point where some (if not most) commentators have fused it with Web 2.0 to include the collaborative elements which Tim O'Reilly outlined in his article.
What the Macromedia document tries to do is define a platform (in truth, promote their own platform) which is a departure from the limited programming model offered by Ajax. It talks about richer user interfaces, better object handling and greater efficiency. But somewhere along the line Ajax crept back in, at least in the eyes of many.
But it's not just confusion over where the boundaries lie with regard to web apps. RIA's other border seems to be a tad blurred. For example, some might consider iTunes an RIA. But is it really any more of a Rich Internet Application than email or the web, both of which have been around since the days when the internet was in short trousers? Why do we need a new term to describe old software?
Untangling the Web
It seems that both terms, "Web 2.0" and "Rich Internet Application", are somewhat fuzzy. Worse still, there seems to be a lack of consensus as to the degree of overlap, with some commentators almost using them interchangeably in places.
Personally I think the term "Web 2.0" has outlived its usefulness. Sure, it was a snappy little label, summing up the bold mood of the new UGC-based site's and presenting the mainstream media with a handy buzzword for an eye-catching headline. But the term in itself is at best entirely meaningless, and at worst grossly misleading!
The ideas embodied by these 'community applications' are just as valid when accessed via conventional desktop applications, Java applets, or Flash apps. Although the phrase 'the web' may now be synonymous with 'the internet' in the eyes of the great unwashed masses (eg: TV presenters demanding: "viewers can email us at our web site...") it isn't healthy, I feel, to perpetuate this obsession with the browser as the sole portal to everything online.
I'd therefore like to see "Web 2.0" dropped from all further discussion, in favour of something which embodies collaboration, social networks, communal data and all the other 'good stuff (tm)' of Tim's original article, without the unnecessary plug for a given technological solution.
I'm favouring "Community Applications" (Community Apps) for now, although I've no doubt someone more inventive than myself can conjure up a phrase more eye catching.
But what of "Rich Internet Application"? It is, I feel, still valid as a label, but only if it is entirely divorced from the notion of Community Apps. Quite simply, RIAs are desktop applications which live on the internet, rather than on local hard disks. Nothing more. That's how I intend to see them, anyway.
Personally (if I ruled the world!) I'd further qualify this definition by suggesting that web browser applications are not RIAs, as HTML and Ajax are not 'rich' compared to their counterparts with proper, fully featured, UI widget toolkits. This is, after all, the original intent of the Macromedia document which coined the term. However I recognise restoring this extra layer of meaning would be highly controversial — it would mean that 'poster boy' GMail was no longer an RIA, for example. I suspect this isn't a fight I'm likely to win, so for now I'm content to note (with a cheeky smile on my face, as ever) that while all RIAs are equally rich, some are more equally rich than others.
So there we have it, a clean break.
"Community Apps" denotes a type of application which may use one or more of the following: social networks, communal data, tagging, and collaborative editing.
"Rich Internet Application" denotes a type of client application which is functionally identical to regular desktop applications, but uses a means of deployment closer to a web page. Physically it is transient, living only at the end of a URL.
Note here that a Community App does not even necessarily need a formal user interface, be that a web app or RIA. It may be nothing more than a set of software interfaces accessible via the internet. So long as the application behind that API fits the spirit of Tim's article, it qualifies in my eyes as a Community App (or "Community App API".)
Note also that a Rich Internet Application does not necessarily have to work with data on the internet. It may be a game, a word processor, a file compressor, or even a virus scanner. The key is that it can be accessed by anyone via a URL.
Of course this whole blog entry has been nothing more than an attempt to outline a problem and suggest a solution, in order to engender further debate and discussion from the rest of the community.
To answer Alice's question: can words mean so many things? Of course they can, although that's not always conducive to a healthy discussion... :)