While you of course should applaud when a company releases one of their main assets in terms of code to the public (the biggest asset is of course the people) you always should look closely if it also includes the Open Source spirit and not just the code. Unfortunately few companies do really understand how open source works and can also make it compatible with their business plan in order to get something out of it.
Actually releasing the code is just the first little step to create a successful Open Source project. You need to do much more in terms of community building.
Looking at the Facebook page I read:
If you’d like to contribute to Facebook Open Platform, please sign and return our Contribution Agreement. We’ll evaluate any submitted patches or features to decide whether they’d be strong inclusions into the overall Facebook Open Platform release. If we incorporate your changes, we’ll send you a t-shirt!
If this is all they do to attract developers in the long run then I doubt it will be successful. Add to this their license which is the Common Public Attribution License (CPAL). Citing from their site:
Facebook Open Platform (except for the FBML parser) is licensed under a Common Public Attribution License (CPAL), which follows the Mozilla Public License (MPL) with two additions:
1. That you include attribution to Facebook on any modifications.
2. That network deployment, or making modifications available over the network, counts as distribution, which makes the license appropriate for Web services.
So that means that mostly Facebook is the benefitting from this. They get patches for free (eventually or even probably if people want to do new things on the platform) and they get mentioned with every installation. If you look in the license you find this sentence which makes it quite clear:
Each time an Executable, Source Code or Larger Work is launched or initially run (including over a network), a display of the Attribution Information must occur on the graphic user interface employed by the end user to access such Covered Code (which may include a splash screen).
So what’s wrong?
The goal of an Open Source project is to encourage a community to develop a project together. Having a company with too much say into this usually does not help to create this community esp. as everything you do is then attributed to Facebook.
Imagine the project going on for some years and the codebase of FB developers getting less and less. At some point one might wonder if such an attribution still makes sense.
But this won’t happen anyway because of the way of collaboration. You send in patches. That’s all. That’s not enough though.
What is needed?
What is needed is the following:
- Public accessible source code repository (they might have that if this repository is really the official one all FB developers work with. OTOH it’s unlikely because you don’t see any sign of a branches or tags directory)
- Write access for trusted contributors (should some contributor provide good patches in a row then it makes sense to give out write access). But only if you have
- good communication practices in place. Developers from inside and outside facebook need to work together. Otherwise there won’t be much collaboration possible and the advantages of open sourcing a project besides PR are missed.
- In the end a foundation which owns the code and the project name and should be as independant as possible from Facebook.
I think it comes down to these four things. If you look at other Open Source projects like e.g. Linden Lab and the Second Life viewer then you see how difficulty it is to make such a thing successful. Linden Lab is still missing a shared public svn and projects done together with the community outside Linden Lab (they look into mercurial for better shared repository management though). And Linden Lab even has Open Source office hours.
Facebook’s Open Source attempt is mainly a PR thing to attack Open Social. Open Social is quite far ahead though in terms of collaboration and doing it right. They choose not to host the source code themselves but handing it to the Apache foundation to handle it and they created the Open Social foundation to make the whole thing independent of Google.
So far I am not impressed.