Facebook is usually not what you want your employees browsing at work. But if your developers just happen to be perusing the popular social networking site, don’t freak out just yet. They may be browsing through the various open-source tools produced by the company, or possibly reading up on some of the new APIs and SDKs released by Facebook at its annual developers conference, known as f8, this week.
We popped into the show to take a look at some of the new ideas and technologies offered by the platform. That being said, some of the most interesting tools at Facebook aren’t new, and aren’t even targeted at their own platform. After all, with millions of users online every second, Facebook has some very difficult software problems to solve. Thankfully, they’ve shared many of those tools with the rest of the world. Here, then, are the top five cool tools produced by Facebook.
There’s really no other way to say it: Giant refactoring projects are really tough to get your arms around. Either you sit in front of your IDE for hours going over every single change to make sure nothing bad happens, or you automate the process and come back in the morning to find every single solitary test has failed and the code is no longer meeting requirements.
Facebook obviously had this problem. To fix it, they wrote casemod, a simple little tool and library that makes refactoring less painful. Instead of completely automating the process, casemod allows developers to straddle the line: They can run refactorings with exceptions that will trigger human response. Thus, you aren’t tied to a machine approving every single change, but you can still make sure that sensitive areas of code aren’t gone over with a robotic lawn mower. When something sticky comes up, casemod will let you know so you can handle the decisions first-hand.
PHPEmbed, phpsh and HipHop
Facebook uses a lot of PHP, and along the way it has had to develop a lot of tools to make building super-complex and distributed PHP applications easier. This starts with phpsh, the PHP Shell, which allows developers to use tab completion and read documentation quickly.
Moving up the stack, we have PHPEmbed, a tool that promises to make it as easy as possible to embed PHP applications into a website.