ZS: If your application is really bad, then you're going to have a lot of events and saving them will take a lot of time. But typically, when you have an application that doesn't generate too many events, the overhead is pretty negligible – it's close to 1 or 2 per cent. But that depends on the number of events generated.
LXF: Would you say that Zend is edging into a space that's traditionally been dominated by Java application servers?
ZS: I think so, to some degree. And in some ways it's already happened. PHP can be found in a lot of business-critical applications and a lot of very large deployments – Wikipedia, YouTube and Flickr all come to mind, but there are tons of others. It's definitely a trend that's growing. We think it makes perfect sense and we do want to support it with Zend Server.
LXF: At the other end of the scale, as Zend Server takes PHP more towards the enterprise, would you say that PHP is perhaps losing touch with its original community?
ZS: I don't think it's losing touch, but I would say that PHP is between 12 and 13 years old, so it's not the cool new kid on the block. That said, I think the community that's been working on PHP is still developing it and is still very much in touch with the community that uses it. The PHP community is very healthy – it's strong and still growing rapidly.
The key strength of PHP is that it's a mature solution, it's been proven. There's a lot less knowledge about how to deploy websites using Ruby or Python – they're good solutions, and I have nothing bad to say about either of them, it's just that the communities are smaller. There's room in the web server industry for more than one player – I don't expect PHP to be used on 100% of websites at one time.
LXF: Would you say that the community's open source work is influencing what goes into the freeware version of Zend Server? For example, I believe PHP 6 is going to include an op-code cache as standard. So has your response to that been, "Well, we'll give away our version too"?
ZS: Well, definitely it's one of the things that went into the decision, but I don't think it's the only thing. We went into this business back in 2001, and we thought that in this day and age it makes sense for us to provide a free – both cost-free and hassle-free – solution for acceleration.
APC is going to become a standard part of the PHP distribution, but the inclusion of it isn't such a huge difference from the status quo. It's already in PECL and you can install it very easily, and if you look at PHP 6, the plan isn't to have it enabled by default. If people really like APC, they can disable the Zend Optimizer Plus and use APC, and it'll work the same except for a few small UI parts that are Zend-specific.
LXF: PHP 6 seems to be spending an awfully long time under construction. Is that some sort of Curse of the Number 6, as with Perl 6, or is it all part of the plan?
ZS: It could be, but I think we'll have PHP 6 before Python 6, though! PHP 6 is a much more difficult project than both PHP 4 and 5 were, for two main reasons. One is the amount of PHP code that's already out there... it's so huge. [The other is] every tiny compatibility breakage you introduce becomes a horrible headache for a lot of people. And combined with the main thing we want to do with PHP 6, which is the introduction of native Unicode support, actually it's pretty much impossible to obtain without introducing a significant amount of compatibility breakage into the language. I don't know how it's going to turn out – I'm being completely honest about that.
LXF: How easy will it be to move from PHP 5 to 6, as compared with moving from PHP 4 to 5?
ZS: The migration from 4 to 5 was fairly successful. It took a few years, but today PHP 5 is already more popular than 4 ever was. We've decided not to rush [the transition], so we're concentrating on PHP 5.3 at this point.
We made the decisions to add some of the features that originally were planned for PHP 6 – such as namespaces – into PHP 5.3, so that we don't have to rush PHP 6. It's probably going to take quite some time until PHP 6 is out.