The influence that Facebook is having on the enterprise now goes beyond making the corporate world a more Web-oriented place - its impact now goes deep into the code.
Facebook announced this week that it has rewritten the PHP runtime, translating it to C++ (a more machine-readable language) which is then compiled with g++. This is no small feat. Facebook engineer Haiping Zhao said that the rewrite significantly reduced the CPU usage on its Web servers by an average of about 50% depending on the page
The impact of this development on the enterprise will depend on a few factors:
- What kind of community develops around HipHop.
- How willing enterprise developers will be to embrace HipHop.
- How the improved run time will actually benefit enterprise operations.
Facebook has done something remarkable. They changed the foundation for the programming language that powers thousands of Web sites. But for now, the change really only affects Facebook.
Marco Tabini is a PHP developer out of Canada who is helping provide perspective about the impacts HipHop may have. Tabini says the next step is to develop a community that will actively build upon the improvement. If they do that, there is a good chance that HipHop may be adopted by the enterprise community.
"Even though Facebook's imprimatur is certainly enough for people to take notice of HipHop, it's important to keep in mind that, in its current format, this tool is promising but not ready for prime time--not because the tool itself is not production-quality (after all, Facebook is already using it to handle 90% of their traffic), but because there is no ecosystem around it. If you're running 1,000 servers, using HipHop is going to be mighty difficult without some sort of deployment tool--and no such tool exists at the moment. Therefore, Facebook's biggest challenge, having overcome the nontrivial hurdle of making HipHop work technically, is going to be that of fostering a community around it to ensure its growth outside of the company's systems."
But this should not be overly complex. With HipHop, Facebook created a drop in replacement that Web developers may make without any significant changes to its existing codebase. Tabini says that if it takes off, the impacts may be significant:
"HipHop could be massively destabilizing to the PHP marketplace, because it is designed as a drop-in replacement to stock PHP; in other words, in most cases it will not be necessary to make significant changes to an existing codebase in order to make it work with HipHop. Flipping this concept around, site owners now have every incentive to write code that is compatible with HipHop, thus giving Facebook significant power over the future direction that PHP takes, since it can dictate what works and doesn't work--and this is potentially going to affect what even the small company does."
The enterprise developer community is dominated by Java and .NET developers. Java is a heavyweight technology. Historically, Microsoft has had a significant hold on the enterprise, primarily due to the hegemony of Microsoft Office, and the enterprise community has scoffed at PHP. Will they be more open to HipHop? We wonder if the term itself may be a cultural barrier for developers. We love the term and think it represents the youthful, modern transformation that is happening in the enterprise. Companies are moving to Web oriented architectures that embrace the open Web. APIs are becoming more important as companies see the importance of connecting with external applications.
Further, PHP is a language for developing Web applications. That seems like reason enough to adopt it. The enterprise is moving to the Web. They've been following what Facebook is doing. It makes sense the enterprise would also follow the lead Facebook is taking with HipHop.
If the impacts really are what they appear to be, the efficiencies alone will create an impetus for adopting HipHop:
Warren Benedetto, a Web developer with Transfusion Media says that, "If it truly is 50% faster than PHP, then it will save companies a ton of money on hardware resources."
He continues, "This also allows enterprises to seriously consider PHP when they otherwise may not have. A lot of enterprises stick to Java and .NET because of PHP's perceived (and actual) performance flaws. If HipHop can raise PHP's performance to the levels of these other languages, it can remain on the table as an option. Then other companies get the same benefits of PHP that Facebook has reaped -- more programmers, cheaper salaries, faster development, etc."
This is a long term transition. Facebook impacts the community then it may affect not just the direction of PHP but of the enterprise as well.