There are all manner of jokes still to be made about Facebook’s IPO woes and the foolishness involved in issuing so many shares that the market was flooded (or in the IPO’s underwriters allegedly withholding information regarding the company’s future profits from all but its central customers), but that didn’t stop Facebook talking about an entirely different Folly this weekend as it launched its own Open Source Library of C++ development code.
In a launch (and mission) statement on the official Folly: The Facebook Open Source Library page on the social network, the company’s Jordan DeLong explained the thinking behind making its code available to everyone:
Facebook is built on open source from top to bottom, and could not exist without it. As engineers here, we use, contribute to, and release a lot of open source software, including pieces of our core infrastructure such as HipHop and Thrift. But in our C++ services code, one clear bottleneck to releasing more work has been that any open sourced project needed to break dependencies on unreleased internal library code… Our primary aim with this ‘foolishness’ is to create a solution that allows us to continue open sourcing parts of our stack without resorting to reinventing some of our internal wheels. And because Folly’s components typically perform significantly faster than counterparts available elsewhere, are easy to use, and complement existing libraries, we think C++ developers might find parts of this library interesting in their own right.
The code – described as “fast and reasonably easy to work with,” making “heavy use of C++” by DeLong – is already available as open source under Apache Software License from a public GitHub repository.
Some of the code may already be familiar to programmers inspecting it. “Practicality pervades Facebook engineering, and we have a low tolerance for “Not Invented Here” syndrome (after all, the company is built on open source software),” DeLong explained, adding that “Folly complements some existing high quality C++ libraries, such as Boost or the Standard Library, both of which we use heavily.”
Commenting that Folly is “definitely in the spirit of ‘release early, release often,'” DeLong wrote that the company “will continue to update the open source tree as new Folly components are added, so you can expect to see more of this on github in the future.”