HipHop for PHP is not PHP
February 3rd, 2010
Charles Nutter, when talking about Ruby implementation performance, said it best:
Listen, people: Ruby is hard to implement. Oh, it may look easy at a
glance, and you can probably get 70, 80, or even 90% of the way pretty
quickly. But there's some crazy stuff in that last 10% or 5% that totally
blindsides you if you're not looking for it. An early Ruby implementation
has not run that last mile of Ruby implementation, and it takes almost as
much work to get there as it does to run the first 90%.
That goes for pretty much all dynamic languages, including PHP. HipHop is fast by not implementing PHP. It's an implementation of a subset of PHP useful to Facebook. I'm not saying it's not awesome what Facebook has done, I'm just saying don't call it PHP.
Based only on the one limitation they've mentioned publicly, lack of eval(), here's a short list of PHP OSS that currently won't work correctly on HipHop:
- PEAR
- CodeIgniter
- WordPress
- Joomla
- Kohana
I wouldn't be surprised if there were additional features they've removed from PHP in HipHop, their blog post announcing it certainly leaves that possibility open.
So call it what it is, a fast PHP-like language.
February 5th, 2010 at 03:14 PM
I'm a web developer that mostly deals with Joomla.
Where does Joomla 1.5 and higher use eval(). I just grep one of my site source code and didn't find any.
I'm not trying to challenge you, I'm just curious on where a eval() statement would be.
Thanks.
February 5th, 2010 at 04:46 PM
Brian, I'm certainly not a Joomla developer so, it was really a cursory look. I simply downloaded the full package from http://www.joomla.org/download.html and ran 'ack --php "eval("' from the root directory. Here's some of what I got:
http://screencast.com/t/OTMyMzdkMDAt