Facebook delivers its state of the open source union

The top 5 Facebook projects offer a unique look at how Facebook creates software and operates, both at scale

Facebook delivers its state of the open source union
Credit: Facebook

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.

commit stats Facebook

Facebook’s top 5 open-source projects

Nuclide: This is an integrated development environment (IDE) built on the open-source Atom IDE first released in June of 2015. It is the top of Facebook’s developer stack intended to unify cross-platform development by Facebook’s estimated 6,000 developers building for the web, mobile and cloud platforms. It supports the Mercurial source code control platform and is integrated with GitHub. It leverages the large population of JavaScript developers inside and outside the company. Nuclide supports the following languages: Hack for Facebook’s HHVM open-source virtual machine, PHP, Flow, JavaScript, OCaml, C++, Swift and Objective-C. Supported platforms are iOS, Android, React Native and the web.

React Native: React Native is a JavaScript-based cross-platform mobile development language that has attracted a lot of attention among mobile development teams. Much of the code used to develop an iOS app in React Native will work on Android and vice versa. It reduces the dependency on this very limited pool of iOS and Android platform developers and repurposes the large community of web JavaScript developers to mobile development.

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. 

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.
Must read: Hidden Cause of Slow Internet and how to fix it
Notice to our Readers
We're now using social media to take your comments and feedback. Learn more about this here.