HipHop from Facebook May Solidify PHP's Leadership Position for Web Development PDF Print E-mail
Analysis - Analysis of News Events
Written by Chris Smith   
Monday, 01 March 2010 00:00

The newly released open-source code transformer converts PHP to C++ and makes large, complex PHP Web sites run much faster.

 

If ever there were an example of an enterprise-level PHP application, Facebook is it. The social networking super-site serves more than 400 billion PHP-based page views per month, proving beyond question that PHP is suitable for scaling large Web applications—or does it?

 

Ironically, it may have been around the 300-billion-page-view mark that Facebook developers finally cried uncle. PHP—a scripting language—just couldn't keep up with all the traffic. Well, it could with enough hardware behind it, but scaling Facebook was becoming a challenging undertaking by any account.

 

Essentially, every page view represented a logged-in user with a custom experience. What is happening in the background when a user views his home page is this: the application looks up all of the person's friends, queries relevant updates, filters results based on privacy settings, and finally completes the user's stories with comments and photos. Facebook does this all in less than a second. This doesn't even take into account other core parts of the site involving the news feed, search engine, chat feature, and other goodies.

 

Someone out there probably is reading this and thinking, "I bet they were sorry they ever started down the road with PHP! They should have picked a traditional compiled language or at least an interpreted language—not a scripting language."

 

Actually, Facebook management is not sorry it developed its site with PHP. The simple-to-learn language has given them something that has been a key to their success: speed. A Facebook senior engineer, Haiping Zhao, writing in a company blog, describes how for the past six years PHP has allowed Facebook developers to do far more than they could have accomplished otherwise, thanks to PHP's support of rapid application development. Using PHP has created an environment in which new engineers at the company can ramp up far faster than they could have using a more traditional language. PHP has given Facebook an edge on innovation.

 

Nevertheless, with 400 billion page views per month, PHP was starting to wheeze. Even on smaller sites, finding new ways to improve PHP performance has been the equivalent of searching for the Holy Grail. It certainly has been job one at Zend Technologies. At runtime, Zend Engine turns PHP source code into opcodes that are then put through the Zend Virtual Machine. Many PHP Web sites use accelerators that cache this output, and Zend Server makes PHP run faster through opcode optimization and caching. Zend Core, which allows PHP to run native on IBM i, fulfills this role.

 

But Facebook was past the point where such measures would result in significant acceleration. The company started looking at actually compiling PHP source into another language so it could be turned into native machine code. As it turns out, compiling PHP isn't really a new idea. Several open-source projects—such as Roadsend and phc—compile PHP into C, while Quercus compiles PHP into Java—go figure. Phalanger compiles PHP to .NET.

 

Facebook decided to transform PHP into C++, but to do that, the company had to put on its thinking cap (drum roll, please). Two years later, the result achieved by of some very bright and very determined developers is what is now being called HipHop for PHP. Facebook developers wrote over 300,000 lines of code and did 5,000 unit tests. It took a few years, but today, Facebook is serving more than more than 90 percent of its Web traffic using HipHop. As a result, CPU usage on Facebook servers has dropped by an average of 50 percent, thanks to HipHop.

 

The company was so pleased with the results it achieved from HiipHop that it decided the Web community at large should benefit. Last month, it released HipHop as open source in the hope of reinforcing the idea that PHP is a great language to build large complex scalable Web sites.

 

What is HipHop, and how does it work? HipHop apparently is not actually a compiler but a source code transformer. It programmatically transforms PHP source into highly optimized C++. Then, it uses g++ to compile it. HipHop includes a code transformer, a reimplementation of PHP's runtime system, and a rewrite of many common PHP extensions. HipHop also includes a new Web server that is said to simplify Apache Web server and thus help increase performance. The main PHP 5.2 language remains essentially the same, save for a few missing features that Facebook says are rarely used.

 

Since HipHop allows for the scaling of very large Web sites, it probably won't find much traction in the average SMB Web site. It may be more of an academic novelty than a practical tool that forever changes the face of PHP development. However, it most certainly will change the debate about PHP that today seems to run endlessly in circles: is it or isn't it suitable for large enterprise Web sites? It seems those for it have it locked. Facebook, however, says HipHop is still in beta and will require more work, presumably from them or others in the PHP community. Developers at Zend Technologies currently are evaluating HipHop to see how its technology can be best adapted to the business and developer communities.

 

Meanwhile, Zend has released the results of a worldwide survey that suggests many more developers soon will acquire Zend Framework certification. Today, only about 5 percent of PHP developers are certified in Zend Framework despite the fact that 70 percent of PHP developers use it for business-critical applications. Parenthetically, some 85 percent have chosen Linux as their primary operating system for PHP applications.

 

Regardless of where PHP heads this year, it's clear the demand for online training and certification will go nowhere but up, and that is good news for Zend.

 

Facebook says that HipHop will be available for download through github.com.


Chris Smith
About the Author:

Chris Smith was the Senior News Editor at MC Press Online from 2007 to 2012 and was responsible for the news content on the company's Web site. Chris has been writing about the IBM midrange industry since 1992 when he signed on with Duke Communications as West Coast Editor of News 3X/400. With a bachelor's from the University of California at Berkeley, where he majored in English and minored in Journalism, and a master's in Journalism from the University of Colorado, Boulder, Chris later studied computer programming and AS/400 operations at Long Beach City College. An award-winning writer with two Maggie Awards, four business books, and a collection of poetry to his credit, Chris began his newspaper career as a reporter in northern California, later worked as night city editor for the Rocky Mountain News in Denver, and went on to edit a national cable television trade magazine. He was Communications Manager for McDonnell Douglas Corp. in Long Beach, Calif., before it merged with Boeing, and oversaw implementation of the company's first IBM desktop publishing system there. An editor for MC Press Online since 2007, Chris has authored some 300 articles on a broad range of topics surrounding the IBM midrange platform that have appeared in the company's eight industry-leading newsletters. He can be reached at chriswriting@cs.com.

Read More >>
Last Updated on Monday, 01 March 2010 00:00
 

You must be logged in to view or make comments on this article


User Rating: / 3
PoorBest 
   MC-STORE.COM