Facebook shows off Thrift development environment
Computerworld Canada - Facebook Inc. sent senior members of its software development team to Canada recently to make some new friends in the developer community.
Company officials attended Seneca College's Free Software and Open Source Symposium to discuss Thrift, a cross-language development environment that it launched in April and has opened up to the Web. Thrift is designed to take a single programming language and generate code to create programs that communicate easily and efficiently across many other programming languages, including C++, Java and Python.
Facebook is already using Thrift internally to develop many of the features in its popular social networking site, including the News Feed that provides updates on a user's status and its search engine.
Mark Slee, Facebook's technical lead, said the company had originally been working in PHP, a server-side embedded HTML scripting language, but eventually concluded that it wasn't doing a good job on some of the site's more performance-intense functions. Facebook was originally designed on LAMP, an acronym used to describe the open-source stack of Linux, the Apache Web sever, the MySQL database and PHP, so it made sense to continue down an open-source path.
"Our data center requirements have gotten bigger and bigger," said Slee, citing some 2,000 machines that manage the site's approximately 2 billion daily page views and 100TB of photo data. "You should be able to use [a programming language] without having to figure out how to make it work with everything else ... you should be able to just spit out the code you need."
Slee acknowledged that several Web services standards already exist, including SOAP, CORBA and COM, but he said each of these alternatives had shortcomings. SOAP (Simple Object Access Protocol), for example, is tied into too closely to XML, while CORBA (Common Object Request Broker Architecture) "has become sort of bloated," Slee said.
"There's still no standard way to do this stuff," he said. "We just decided, 'Hey, we're going to go for it.'"
Google Inc. has its own technology, called Protocol Buffers, that can accomplish what Facebook is looking for, but it's proprietary, Slee added. "It just doesn't make sense for yet another company to create a development environment that they keep to themselves and then fail to update because nobody has time to work on it."
Thrift is based around principles of simplicity and clarity within each layer of code, Slee said. So far, he said Thrift allows Facebook developers to write client and server code in as little as five minutes, while eliminating a lot of duplication of effort and maintenance issues.
Jeffrey Hammod, an analyst at Forrester Research Inc. in Cambridge, Mass., said Facebook is coming out with Thrift at a time when other approaches, including representational state transfer (Rest), are also being used to create Web services. That doesn't mean there isn't room for new entrants, however.
"People are still evaluating the easiest way to do these things and the way to get the broadest reach," he said. "I don't think there's a particular standard that's going to dominate in the Web services world."
David Reiss, a Facebook software engineer, said Thrift has already been picked up by a couple of outside contributors because it was donated to the open-source community under a BSD license. These developers have been creating, among other things, new "language bindings," which would allow easier reuse of software, for Perl, Ruby and JavaBeans, he said.
"We haven't super-actively solicited any developers," Slee said. "Most of it was through a smaller set of close relationships."



- Excel 2010 Cheat Sheet
- Register for this Computerworld Insider Cheat Sheet and gain access to hundreds of premium content articles, guides, product reviews and more.
- Digital Transformation: Creating New Business Models Where Digital Meets Physical
- Individuals and businesses alike are embracing the digital revolution. Social networks and digital devices are being used to engage government, businesses and civil...
- Make the Connection: Better Network Connectivity Drives Transformation
- Network connectivity is more than just plumbing. Leading organizations today see high-performance network connectivity as a critical enabler of competitive advantage, and not...
- Virtualizing Government Infrastructure
- All server virtualization solutions are not created equal. The more-with-less agenda for government agencies is tailor-made for server virtualization, which is evolving into...
- Moving Service Management to SaaS
- Today, organizations can enjoy similarly substantial benefi ts by migrating their IT service management functions to a software-as-a-service model. This paper shows how...
- Achieving 360 Degree Network Visibility with Nimsoft
- 360° network visibility is critical for ensuring continuous availability of networks, servers, and applications-anything less could
have costly bottom-line implications.
All Networking White Papers
- Optimizing Networks for the Cloud
- Join guest speaker, Rohit Mehra, IDC Director of Enterprise Communications Infrastructure, to explore current trends, discuss best practices for optimizing Data Center and...
- Unified Communications 101
- What's the best way to implement a unified communications solution for your organization?
- Try the OptiView® XG on your network - FREE
- The OptiView® XG is the first dedicated tablet with automated network and application analysis -- fastest way to root cause. XG raises the...
- Apps QuickStart Series Part 2: Designing and Deploying SQL Server on VMware vSphere
- Download this webcast to learn about the design considerations for virtualizing SQL workloads, performance and scalability information and high-availability options, as well as...
- Apps QuickStart Series Part 1: Designing and Deploying Exchange 2010 on VMware vSphere
- Download this webcast to learn the virtual hardware design considerations for Exchange 2010, deployment using the building block approach, options for high-availability and... All Networking Webcasts