Dev

Exclusive: Facebook opens up about open-source software

This is the second of a two-part exclusive on Facebook’s involvement with and creation of open source technologies. The first installment focused on hardware. For these articles, we spoke with two of Facebook’s open source gurus, David Recordon and Amir Michael, about how the company is opening its infrastructure to other developers and organizations.

Sitting across from Facebook’s senior open programs manager David Recordon at the company’s Palo Alto headquarters, we asked the young open-source expert if working on open source software at a proprietary software company presented him with any ethical dilemmas.

“Absolutely not,” he responded. “Look at the amount of open-source software that we do release. We release far more of our infrastructure that we develop than any other company like us.

“And it’s hard. It requires effort to take software for your own environment and make it something that’s useful to others, too. Making a healthy project and accepting contributions takes time and focus.”

The social media company has, without question, taken the time to work on those projects. The hackers at Facebook have done perhaps more than any other single entity to advance and optimize PHP, the programming language on which the network is primarily built.

Facebook’s OSS projects

Recordon can rattle off any number of important OSS projects released by Facebook during his two-year tenure at the company. Before he joined Facebook, Recordon was a founding board member of the OpenID Foundation, a nonprofit devoted to improving the way identities and logins are managed around the web.

Now, Recordon is building the team at Facebook that focuses on OSS and web standards, which includes technologies such as HTML5 and Oauth. He oversees both bringing in and pushing out worthy open-source projects to the company’s engineers and the larger community.

Some of those projects include Phabricator, a suite of web apps for code review and how Facebook does their own development; Cassandra, an open source distributed database management system; the waves-making HipHop, which transforms source code from PHP to C++; the company’s Javascript optimization efforts, called Primer; XHP, a PHP extension which augments the syntax of the language such that XML document fragments become valid PHP expressions; and Thrift, a software framework for scalable cross-language services development, to name but a few.

More remarkable still, all of these diverse and useful projects have come from a relatively small business over the course of less than four years. This is what Facebook engineers are doing in their spare time, folks.

“We value moving fast,” Recordon said. “The rate at which we build infrastructure and make changes, I haven’t seen anything like it. That’s core to our culture.”

Facebook’s hacker culture

Recordon describes the company’s expectations of engineers as “very entrepreneurial. We value the impact a single person or a small team can have. Video calling was built by one engineer and one designer. The messenger app was done by a few engineers. Those groups have a huge impact.”

While Facebook is out looking for those smart, motivated engineers to hack within the company independently or in small groups, hackers themselves are attracted to exactly that kind of opportunity — and working on open-source projects can be a huge selling point in Facebook’s recruitment process.

“Engineers enjoy working on open source,” Recordon said. “Culturally, it allows engineers to talk about what they’re working on publicly. Open-source software also allows people to see the kind of infrastructure we build. It gets people in some areas a taste of the code we’re running in production.”

In addition to working on in-house OSS projects, Facebook engineers are frequently core contributors to other open-source projects, such as Hadoop and Hive. “But those are tools [the data infrastructure team] uses to get their job done,” said Recordon.

Facebook’s OSS workflow

In a hacker-centeric culture that values independent work, how does Facebook, the organization, decide which projects get institutional support and which also get open-sourced? We asked Recordon what the process was like for HipHop.

“HipHop started three years ago, when the site was going through a tremendous growth curve,” Recordon told us. “We needed to optimize the PHP behind the site, and there were three competing projects at the time trying to do that. One was looking at tweaks around PHP itself. Another was working on a Java runtime for PHP, and then there was HipHop. On the risk/reward scale, HipHop was high risk, high reward. As one or two engineers were working on these things, it became clear that HipHop was the right solution, but there was a lot of testing and comparing… Test it, iterate, and code wins. We look at these projects logically.”

Of course, a company built by engineers would place logic at the forefront of every decision, even the decision on whether or not a piece of software should be made publicly available and shareable.

“Companies can see those pieces [of software] as far more core to their business,” said Recordon. “But our ability to serve PHP faster is not core to our business. But cheaper/faster development tools for other companies is a real competitive advantage.” Hence, logic dictates that because there’s no business loss if Facebook’s infrastructure is open-sourced, then open-sourced it should be.

The future of open source

But there’s more to open-source at Facebook than just its back-end software and PHP optimizations; with the Open Compute Project, Facebook is also trying to open-source its server and data center design, and it’s also thinking about what open-source means for data and APIs.

“I think it’s pretty clear there’s no question about whether companies should be using open-source software or not,” said Recordon. “That was answered over the past decade. The question now is about open hardware. Many of the things that we have today for OSS we don’t have for hardware and standards.

“The world continues to shift from open source being just about the code of the software to the APIs and data above it to the hardware below it.”

DevBeatCheck out DevBeat, VentureBeat’s brand new channel specifically for developers. The channel will break relevant news and provide insightful commentary aimed to assist developers. DevBeat is sponsored by the Intel AppUp developer program.


Mobile developer or publisher? VentureBeat is studying mobile marketing automation. Fill out our 5-minute survey, and we'll share the data with you.
0 comments