Some doodles I'm using to try and visualise what Facebook and the OpenSocial API may be about in Web terms. The material appearing on Techmeme appears to be toxoplasmosis-inspired, it's OpenSocial vs. Facebook rather than looking at what they have in common. It isn't very long ago Facebook was a startup built from a little college system, and whatever Google looks like today, it too will pass. The Web supports them both, and is already longer-lived. (Ok, sorry, it's getting late, I'll get on with it...)Â
First we have an application, which needs a source/sink of data with which to operate, and it might connect with the Web or it might connect with a Social Network:
Next we have the setup like Facebook or any of the OpenSocial-enabled systems:
Finally we have a set of Web applications:
Notice a difference? As far as I can tell the big difference is
the language used between the components of the system. Whatever
the OpenSocial API has to offer, it's unlikely to have the full
flexibility and power of HTTP and associated formats. I still feel
the OpenSocial thing is a positive move,
any commonality of language helps communication, standards
are liberating. In an ideal world the End User app in the first
diagram above could connect to the Web or a Social Networking
not be able to tell the difference.
Whatever, the Web has ways of subverting things, it'll probably only be a day or two before one of those 'End User Application's has another service as its end user, flipping the container over into the Web.
There may be parallels with RSS, which got dumbed-down from the original aims to being a fairly crummy domain-specific little language (where the domain is blog-like content). It offers a convenience in the form of feedreaders, but that functionality couldÂ have been implemented using polled HTML (I use browser tabs like a feedreader, the only difference being I have to manually update from my 'subscription list'). But RSS begat Atom and Atom begat AtomPub and overall there seems to have been a genuine advance on what came before - in no small part because it's using the language of the Web more.
The OpenSocial API looks like it'll be a cut-down version of the kind of communications that are already available on the Web. But in the same way the narrowing of options with RSS made life easier for the feed tool developer given the tools of the day, a little language dedicated to the shape of the container will no doubt make life easier for social network app developer. It remains to be seen exactly the specific limitations of OpenSocial will be, but it's likely to be workaroundable, in the same way it's pretty easy to bridge RSS to generic web data in the form of RDF. I'm quite looking forward to playing with the API, should be interesting starting from a platform which looks most like the third picture above.
One final point of caution, unwittingly demarcated for me by Scoble:
A "container" is something that hosts apps built for this new platform. So, MySpace is a container. Bebo is a container. Eventually even my blog could be a container.
My emphasis). Remember the days before blog mass
production? Anyone could knock together a home page using a cheap
host, text editor and ftp - build themselves a web site that was
effectively compatible with the rest of the web? Only a minimal
notion of containership came with that deal. Scoble's "eventually"
could be a long time, and any sufficiently advanced Google is
indistinguishable from Wal-Mart. Reliance on megalithic
corporations for operating systems and search is bad enough, but if
web development starts a lemming dive down a similar path...well,
they do say the Big One could happen any time.