There’s no doubting Facebook’s commitment to open-source projects. The company has a portfolio of over 400 open-source projects with over a half million followers. A look at the top five projects gives a bird’s eye view of Facebook’s obsession with unifying and improving the effectiveness of its large internal developer community, automating the process of building software by continually deploying it, and operating at a scale matched by just a few other companies, such as Amazon, Google and Microsoft.
The commit statistics below are a measure of the development activity of Facebook’s top five open-source projects that impact different parts of software development and execution. A commit is a revision or additional file usually containing software code that is saved to a GitHub repository. The commit is saved with a unique generated ID or hash and is time-stamped so that code contributions can be managed from creation through final release.
Facebook’s top 5 open-source projects
React Native promotes building components that increase code re-use and consistent design and branding within an app and across app portfolios. A/B testing of a new release to a subset of app users is easier and faster with React Native than apps built for mobile platforms, especially iOS. This has been a vexing problem for product managers and developers coming from web development who want to collect analytic data about how people use new releases to compare to prior releases.
HHVM: HipHop Virtual Machine (HHVM) is an open-source virtual machine based on just-in-time (JIT) compilation. It increases the performance of the server side of web apps written in PHP and improves the web user’s experience.
HHVM converts PHP and HACK, Facebook’s proprietary version of PHP, to an intermediary bytecode that runs efficiently with compilers and interpreters, unifying the development and infrastructure environments. It is built for continuous deployment of software across large virtualized server infrastructures.
Buck: Buck is a build system like Apache Ant and Gradle. It is designed for mono-repositories used in continuous deployment, integrating compilation, test, QA and deployment. Buck encourages the creation of small, reusable modules consisting of code and URI-referenced resources with the flexibility to change the code or resources in real time. Buck is built to support containerized microservices.
Why Facebook open-sources so many software projects
Facebook projects are stored on GitHub, the largest online storage space of collaborative works. GitHub is used by many development teams of every size—from single independent developers to large organizations that have thousands of developers. It is the epicenter for open-source development and open innovation. In response to the question, why is Facebook open? Yann Lecun, head of Facebook AI Research, said, “No entity has a monopoly on good ideas. You have to be part of a larger community.”
Open innovation brings new ideas from the larger community that improve the project. It also brings code contributions from developers outside of Facebook.
+ Also on Network World: 25 surprising facts about Facebook +
There is a symbiotic relationship between contributors and users of an open-source project. For example, Wikipedia also uses HHVM. The software is licensed under free open-source terms. Wikipedia needs HHVM to meet their needs and chose it because it was a good fit for its developer operations. But Wikipedia will want to influence the development of new HHVM releases to meet its specific needs defined by its development stack and infrastructure. Wikipedia may want to accelerate the development of certain features or add certain features. Influence comes at the price of contributing software created by its own development team. Sometimes developers contribute simply because they are passionate about or intellectually intrigued by a project.
Open-source projects are also a talent acquisition strategy. A popular open-source project attracts good developers. And over time, collaboration on GitHub, which is a social network of sorts, creates a code-level and personal relationship between employer and candidates. Open-source projects are also an important showcase for developers seeking to advance their careers.