I was happy to attend the "Facebook Technology Tasting" event tonight, where they gave a presentation about their newest open source project, HipHop for PHP.
HipHop is definitely some very cool technology, built by an enthusiastic team, solving real world performance issues in large scale websites, and I have no doubt other companies using PHP (Hello Yahoo!) will find it invaluable, and hopefully help turn it into a successful open source project.
What I find most interesting and encouraging about Facebook's most recent open sourcing efforts, HipHop today and Tornado last year, is how they are taking a dramatically different approach to their earlier open source projects like Thrift or Cassandra.
Thrift, purely as an example, was one of their first projects built internally, and later open sourced. It originally open sourced on April 1, 2007, but it had a difficult time building a community around the code. The approach was a blog post, and code basically 'tossed over the wall'. External developers did try to contribute, but I believe the interactions were less than optimal, as the original forum for discussion was a Facebook Group -- they learned from this quickly, programmers didn't like web forums for submitting patches, and later proper mailing lists were setup.
Cassandra was another project that was essentially thrown over the wall, code was available, but there was no imitative to build a community around it.
Today, both Thrift and Cassandra found their way to the Apache Software Foundation, via independent paths. Apache Cassandra is turning into a very healthy community, having made many releases, and is in the process of graduating to a top level project. Apache Thrift, made their first release in December 2009, has been slowly gathering more external contributors and an open community built around the code.
What I see happening with both HipHop and Tornado is completely different, and that is what is most encouraging. From the start, they are doing everything right to encourage an open community be built around these projects. Open Communities are what create successful projects, and give companies creating the open source projects the most rewards.
When you create an open source project, you gain almost nothing but a PR hit if there isn't a community built around it. For infrastructure projects, like HipHop, Cassandra, Thrift, Scribe, and Tornado, the most important thing that gives you the most rewards from open sourcing it, is having other people hack on the code -- but more than that, to use the code in their own company.
Just look at the massive community that has exploded around Apache Lucene and Apache Hadoop -- Yahoo could of kept this infrastructure project internal, and sure, it might of fulfilled their original goals, but they wouldn't of ever received the thousands of external contributions, which has turned the Lucene/Hadoop world into one of the most diverse and thriving open source communities of late, giving Yahoo a thousand times return on their investment in Hadoop.
Thank you Facebook for getting it -- community is just as important as the code that you are open sourcing, and I would like to wish the HipHop for PHP developers the best of luck with their new open community project!