Is Facebook Competing with OpenSocial?
Facebook announced that they’re opening up their platform architecture, licencing their Facebook application hosting systems to other sites so that developers can write a Facebook application and host it on multiple sites, not just Facebook.
That’s exactly what OpenSocial is trying to do. I suppose the competition will be good for the internet, but if they both take off then I’m really in a situation where, as a social network application developer, I have to write my applications in both architectures. And that’s crappy, because the OpenSocial architecture is significantly more friendly to application developers.
Facebook’s application architecture depends on you having your own web hosting to display pages, your own databases to store every bit of data, cron jobs to periodically poll and update profile box contents, etc… Writing the ReIntegrate.Us Facebook application involved setting up several database tables, configuring several public dynamic pages that display Facebook-specific markup (and so can’t be used for the general public), and maintaining several periodic jobs. And it was that simple only because I already had the user authentication infrastructure built for the main ReIntegrate.Us site.
In contrast, OpenSocial is an extension of the Google Gadgets API, in which the site (i.e. iGoogle) hosts the application content, provides a simple data storage system, and in which computations are all handled by the client in Javascript. I wrote a simple Google gadget recently that pulled data together from multiple different sites, persisted user preferences, and did some mathematical and presentation calculations, and all I had to do was host a static XML file somewhere public on the web. If I didn’t want to host it myself, Google was willing to host the XML for me.
Given my preference, Facebook would adopt a model significantly more akin to that of OpenSocial. If social application developers can push computation and storage off their systems, it will lower the infrastructure barrier to entry. Reducing the barriers to entry is good for developers, which is good for users, which is good for social networks.