Monday, June 2, 2008

Facebook Counters Google's OpenSocial With fbOpen

A week ago the rumors heated up that Facebook would open source its platform.

And today Facebook made good on the rumor by launching the Facebook Open Platform (fbOpen). On the Facebook Open Source Projects, they list fbOpen and the other open source projects (Thrift, MemcacheD, ...) they are involved in.

What is fbOpen? According to the website it is:
"a snapshot of the infrastructure that runs Facebook Platform. It includes the API infrastructure, the FBML parser, the FQL parser, and FBJS, as well as implementations of many common methods and tags."

Or put more simply:
fbOpen is an open source reference implementation of the Facebook platform.

This is a similar statement to:
Apache Shindig is an open source reference implementation of the OpenSocial specification.

In my "Social Networking Big Dog: Facebook or Google?" post, I draw a comparison of Google and its OpenSocial Foundation to Sun and its Java Community Process.

I'll extend that comparison further by equating fbOpen and Apache Shindig to be logical equivalents to the J2EE Reference Implementation. The primary difference between these two efforts, of course, is that OpenSocial provides a specification for the Apache Shindig reference implementation, while fbOpen is simply a snapshot of code from the already implemented, deployed, robust, and successful Facebook Platform.

So this news begs a couple of questions:

  • Does it matter that fbOpen is not based on a specification but is simply "a snapshot of infrastructure"?
  • Does it matter that implementations like Apache Shindig have a common specification (OpenSocial) to base their efforts on?
Before answering the questions, you should consider the success of open source projects like Hibernate and the Spring Framework, both of which did NOT implement the predefined J2EE specifications. Instead, they both defined new and better ways of doing things. Good technology trumped agreed-upon specification.

One final note. I expect that all or parts of these reference implementations will be leveraged by a wide range of people and companies interested in extending them to suit their specific market/product needs. Similar to how companies like BEA, IBM, Sun, Oracle, and JBoss all created their own J2EE application servers that implemented the specs as well as included piece parts of the reference implementation.

This matches what Ringside Networks has been doing by integrating and extending Shindig in order to provide a production-ready implementation of OpenSocial. Moreover, since our open source social application server already provides extensive Facebook platform compatibility, we'll look at fbOpen to see how we can leverage it so we can spend less time implementing Facebook compatibility and more time on our unique value add.

I'll elaborate much more on the Ringside Networks product strategy in upcoming posts.

Bottom-line:
  • Only time will tell if Facebook launched fbOpen in time to slow or stall the momentum of Google's OpenSocial Foundation.
  • Open code is better than closed code; but open does not necessarily translate into vibrant community.
  • Only time will tell if Facebook's community will be open and vibrant enough to generate significant momentum (and code) of its own.

No comments: