Laying down some PHPat beats

If there has been one buzz in the past days, it's been the announcement of Facebook of the Hip Hop for PHP (or HPHP). This new tool for PHP developers (or actually for users of PHP) is aimed at gaining performance by converting PHP code to C++ code, then compiling the C++ code to a binary which includes a web server. But what will it actually mean for PHP?

Over the years there's been a lot of tools to improve the performance of PHP. Sometimes, these were tools specifically aimed at PHP (such as APC or the Zend Optimizer), at other times we've been hooking into existing tools (such as Memcache). But in all these situations, the actual PHP code was left alone and deployed in the traditional way of putting the PHP files on a server that is able to parse the PHP files on each request. There have been other initiatives to compile PHP (such as Roadsend) but for some reason there was no big adoption. I think this might change with HipHop for PHP.

One reason for things like RoadSend not to get a huge adoption figure is obviously because it requires a lot of control over the server you deploy to. And since the majority of PHP users deploy to shared servers with limited control over their server, there is little that can be done to actually use it. Another reason though is because most probably many people did not know about Roadsend and similar initiatives. Even in the larger companies that I've worked for in the past, I've never really encountered it so far, and it wasn't until recently that I bumped into Roadsend.

But with the rise of Virtual Private Servers and the dropping prices of dedicated servers, more and more people are taking control over the environment to which they deploy their PHP applications, whether business or private. And with that, initiatives such as Roadsend and HipHop for PHP get more leverage. And actually they become more useful, because in a VPS, every little bit of resource counts, so when there are tools that can save some resources, people are more inclined to start using it.

Still, HipHop for PHP might not be for everyone. First of all, because not every PHP application will be able to use it (HipHop for PHP can not convert all PHP to C++ code. Things such as eval() won't work). But also, because it won't be necessary for everyone. If you're just running your personal blog, I'm not sure HipHop for PHP will be for you. It might be able to help, but with a regular blog the difference might not be so big, especially given the hassle it will take to use it. Keep in mind that you've have to convert, compile and deploy for every little change to your script.

So where can it be really useful then? I foresee a lot of use for HipHop for PHP in PHP-based backends. PHP applications that have a multi-tiered architecture can benefit from HipHop for PHP. The front-end could be a pure PHP implementation. This makes it easy to change the front-end. The back-end services on the other hand could be HipHop for PHP services that expose data and/or contain the business logic. This is the part of the application that doesn't change as much as the front-end, so the overhead of converting and compiling is more worth it. And this is also the place where big performance hits are usually taken, making it even more interesting to speed up that part of an application. 

It might even be that, with the above in mind, more people will go for a more service oriented approach to their application, finding out performance bottlenecks in their application, converting them to isolated components and turning those into HipHop services. 

And this is where I hope HipHop for PHP will help PHP development in general, even for those that will not actually use it: It might make people give more thought on architecture, on nice and isolated components that can be easily replaced or refactored without having to change the whole application. Even when people end up not using HipHop for PHP, the fact that it is available and people know about it may make people consider their application architecture.

Now it's just waiting for the sources to become available, so that everyone can start playing with it. 

Add comment

Comments

gravatar Why Isnt Phentermine Working For Me: phentermine: still the best the most effective ways to lose weight! phentermine 37.5 mg side effects phen375 hydrochloride tablets phen375 37.5mg and adipex-p phen375 forum sugart*ts phen375 37.5mg adipex p phentermine pills for sale phentermine 37.5 tablets reviews you measure food intake by counting calories. however, if your doctor advices you to exercise, the questions remain - what kind of exercise and how much? that becomes an uncomfortable decision due to time constraints and expensive alternatives like surgeries.
March 10, 2013
gravatar Carpet Cleaner Coupons: sooner or later someone is going to put away this is the recommendation for standard, loamy soil, but if you have sandy soil your garden can be smaller or if your soil is heavy with high clay content it'll need to be a bit larger. write down the models and prices of the ones you liked. i like this video because the guy 1) knows what he is doing and 2) wears an as seen on surveillance tv shirt. electric fireplaces are great to use all year even in warm locations.
March 11, 2013
gravatar Commercial Glass Freezer For Sale: the filtering ability of a system should be one of the factors to be considered during the shopping process. counter-depth french-door refrigerator huge dishwashers tend to consume cabinet space and were impractical for a small space kitchen.
May 17, 2013
gravatar betternet glutathione body lotion: if you want to make sure about what you are eating, i would suggest buying a bread maker. avoid food with artificial additives natures bounty b-complex with b12 sublingual liquid. eggs: eggs are a wonderful natural source of protein. the recommendation to do the same with magnesium chloride, sodium bicarbonate and glutathione.
May 17, 2013
gravatar Phentermine 37.5 In Okc University: d. unusual levels of stress/anxiety they digest it very poorly, he says, so what happens is much of the calories turn into fat, and yet the dog remains hungry because they are not getting the nutrient they need. ==> third type of obesity, in which fat is stored in whole body .i.e. back, hip, breast, neck, abdomen and face area. some obesity starts from child hood because of the habit of overeating. obesity from hereditary causes diabetic and depression. due to depression, adrenaline hormone produced in high amount which increases the appetite. due to this they start over eating and their obesity increased. visit d5 page on the neuroreplete website below: if you happen to forget to take a dose one day, try to take it as soon as you remember. if its near the evening hours, it is better to skip the dose completely and just continue with your regular phentermine dosage the next day. never double dose.
May 22, 2013

Php5_zce_logo

Tags

1337 2008 2010 2011 4developers access modifiers accessibility AdaLovelaceDay09 advent agavi agile alfred amsterdam amsterdamphp apache api apple article articles atk atkMetaNode audioscrobbler autoloading automation azure backwards compatibility barcelona barcodes bash bbc bbq beatstad belgium best practices bittorrent blogging blogs boards of canada book books bughuntday bundle caching cake cal evans calendar career cat cerf certificate cfp cilex clear cms cologne common sense communities community components composer conference conferences contest continuous integration contribute contribution crisis css curl custom d-day data migration datetime DbFinderPlugin decorator decorators deployment deps devdays development directoryindex directoryiterator docblox doctrine doctrine2 documentation download dpc dpc09 dpc10 dpc11 DPC2008 dreamhost drupal dv7 eclipse ed editors efficiency enterprise errors event events expertise ezcomponents facebook filter-branch filteriterator finland flickr fork framework frameworks free ticket freelance freeze frontend fun game games geoip germany getting real git github globiterator gnome-do google google calendar googletalk graceful degradation hack hackers hidden gem hiphop howto hp HR html http i386 ibuildings icann ide ideasofmarch idm imovie inclusivity indy ingewikkeld integration international php conference internet interview ipad IPC ipc ipc08 ipc10 ipc11se iterators iterm2 javascript jenkins jenkins-php job job openings jobeet john peel joomla joomladays kiva kubuntu launcher launchy left on the web libcurl libraries library lighttpd lime linktuesday linux live london loudblog m2ts mac magazines malware mambo manchester marjolein mediterra meeting meme meta methodology micro-financing microframework microsoft migration movie music mysql namespace namespaces netbeans netherlands newsfire nllgg northeastphp nos odmarco open source opinion ORM osx paradiso paris partnership pavilion pear pecl performance personal pfc10 pfc11 pfcongres pfcongrez pfz pfz.nl photo php PHP php5.3 phpabstract phpazure phpBB phpbb phpbelgium phpbenelux phpbnl10 phpday phpdoc phpdocumentor phpgg phpitalia phpnw phpnw08 phpnw11 phpnw12 phpstorm phptek phptek09 phpuk2009 phpUnderControl phpunit php|architect php|tek podcast politics portability postcrossing presentation presentations private projects protected prototype PSR-0 public python qa qr codes re2c recruiting refactoring review rewrite ruby on rails san francisco schedule scifi script security sensio seven things sexism sfdaycgn sflive2011 shell scripting silex simplexml slides smfony software sogeti solar sound speakers spl ssh standard standards star trek static steer strings stylesheets subversion symfony symfony live symfony2 Symfony2 symfonycamp symfonyday symfonylive symfonyUnderControlPlugin talk talks tech techademy technology techportal tek09 telecommuting terratec terrorism testfest testing textmate textpattern the right tool timeout tips tld todo tomas tools training twig uncon unet usability usergroup validation vhost video vim vinyl virus warp webinar weblogging webservices wiki windows winphp women wordpress work workshop world world of warcraft wpi writing wunderlist xml xpath xsd yara year youtube zc11 ZCE zemanta zend zend framework zend server zend studio zendcon Zend_Form zite
© 2004 - 2013 Stefan Koopmanschap + Powered by Symfony, photos powered by Flickr, links powered by Delicious, Shanghai smilies by Iconbuffet. Feeds: rss / atom. Left on the Web v4.4.0.1