Zeev Suraski and the PHP Engine Story

Published Updated

PHP's modern shape runs through Zeev Suraski's work with Andi Gutmans. The PHP manual credits Gutmans and Suraski with the 1997 rewrite that became PHP 3, and the Zend Engine that followed became the core of PHP 4.

The original interview is reproduced in full below, unedited.

Why Zeev Matters

PHP started as Rasmus Lerdorf's toolset, but PHP 3 is where it began to look like the language developers still recognize. That origin matters for a practical reason. Gutmans and Suraski were trying to build an ecommerce application for a university project, found PHP/FI too limited, and rewrote the parser underneath it.

That is a very old web-development pattern: a rough tool becomes useful, then the project either grows an engine underneath it or collapses under the weight of real applications. PHP grew its engine, and the Zend Engine, named from Zeev and Andi's first names, gave PHP 4 better performance, modularity, sessions, buffering, and safer input handling.

That engine story connects directly to the PHP guide, beginning object-oriented PHP, and PHP frameworks compared. Framework choice matters, but the runtime and object model decide what those frameworks can be.

The CodeWalkers Interview

The archived CodeWalkers interview asked the questions a PHP developer would have asked at the time: what PHP could become in enterprise work, how PHP 5 and Zend Engine 2 might change object-oriented programming, what beginners should do first, how Zend viewed competition, and whether PHP would replace Perl for system-administration work.

The useful thread running through it is practical. Zeev's beginner advice centered on development discipline: enable notices while building, keep code clean under that level, and use a debugger instead of scattering print statements everywhere. That advice has aged better than many 2000s PHP snippets.

He was also careful about prediction, and the old interview caught PHP just before PHP 5 changed the object model and before frameworks became the normal way to organize larger PHP applications. Read from 2026, the interesting part is that the language was already wrestling with the same question PHP developers still face: how much structure can you add before a simple web language stops feeling simple?

The CodeWalkers Angle

The PHP section covers those boundaries directly: templates, PDO, sessions, APIs, SOAP, email, and small database-backed applications. Those topics all assume PHP is more than pasted snippets. They assume a runtime, a language model, and enough discipline to keep a small app from becoming unmaintainable.

The Original CodeWalkers Interview

Reproduced from the original CodeWalkers interview, archived by the Internet Archive on 10 April 2007. The questions came from CodeWalkers readers and were sent to Zeev in September 2002; the answers are his. The introduction above is new writing by CodeWalkers; the interview answers below are Zeev's words, unedited.

Zeev Suraski has been working on PHP along with Andi Gutmans since 1997, when they started the PHP 3.0 project, and continued in the design and implementation of the PHP 4.0 core. Zeev, a graduate of the Technion, Israel institute of Technology, is a member of the PHP Group, a member of the Apache Software Foundation and one of the founders of Zend Technologies.

Here's your chance to ask Zeev some questions. The top 10 questions will be sent off on the 26th of September.

Here are the answers to the questions that you asked Zeev. Thanks to everyone who submitted questions, and a special thanks to Zeev for answering them!

zombie's question:

What do you have in plan for the PHP in the Enterprise level?

Our main next step is the Zend Engine 2, which will be the basis of PHP 5. ZE2 will boost both the performance and functionality of PHP's object oriented programming model, allowing much larger applications to be written. In addition, the integration with external component models such as .NET, Java, COM and CORBA will be made much more efficient and reliable. Other ZE2 features such as exception handling and access restrictions will further improve the viability of PHP in the large-scale-projects and enterprise market.

DavidGrant's question:

Firstly, I'd like to say thanks for all your hard work on the PHP project over these past 5 years! Secondly, I'd like to know where you and the rest of the group envisage PHP being at version 5, both in terms of market share and also from a programming basis (e.g. OO etc.).

I guess I should have looked at all of the questions before beginning to answer : Predicting the future is not something that I like doing too much, because in my experience - nobody ever gets it right. I can only hope that PHP's market share will continue to grow - and I think it will - as we're doing our best to push it in the right direction. The ZE2 features, as well as other key features such as Wez Furlong's streams, will make sure PHP remains on the cutting edge.

LGetreu's question:

Zeev, what tips do you have for a beginner using PHP?

There are lots of gotcha's that can be avoided if one follows a few rules. First - always enable E_NOTICE's while you're developing/debugging. Make your code E_NOTICE-clean, and you'd be likely to produce code of much higher quality. Also - use a debugger, instead of printing out debug info. Once you get used to it - you become a hell of a lot more productive than you have before. I went through the same phase (not with PHP, but with C) and I'm not sure how I managed to get anything done before I started using debuggers.

laidbak's question:

I hate to do this, however, many people want to know... what is your stand on php similarities to asp in that asp has intrinsic functionality for db abstraction, however no MVC system builtin. Is php going that route, or do we have to depend on pear, which may or may not be installed on a particular server?

We don't have immediate plans to implement a database abstraction layer in PHP itself. There was some work done in that direction in the dbx module - but the status of it is not certain. Generally, we want to see such things in PEAR, and we will highly encourage the installation of PEAR by making it very easy to install (courtesy of the PEAR folks, not me!)

xirus's question:

Are you planning on implementing a template system into core php? (comparable (or better ;) to what ASP.NET has and much better than the existing template systems like smarty etc) And are there any plans in making php truly compiled, unlike zend cacher and 'compiled ASP.NET'?

No, to both questions. If you're interested in starting up a new template system project, you're more than welcome; The general consensus among developers is that Smarty is about as good as it gets.

About the compilation issue - PHP does not translate very well (read: at all) to machine code, or byte-code similar to that of the CLR. That is one of the reasons that PHP doesn't have a CLR implementation. For the same reason, the .NET implementation of Perl is very limited. Scripting languages simply don't translate well to the CLR bytecode, or to machine code.

blazin's question:

Is it a good feeling or a bad feeling knowing that so many people are making lots of money off of your work? I know for me it'd be tough inventing something and giving it away only to have many other making money by utilizing my invention or writing books about it, but at the same time, I think it would be very cool knowing so many people appreciate the work I'd done. What is your view on this?

I don't think about it that much in every day life. When I do - thinking that this very second there are millions of web sites running software that I helped write - it's usually in a good context. I won't lie though - sometimes there are annoying situations where specific people who made/make their livelihood out of PHP end up totally ungrateful in various ways (mostly by endless additional demands :). But that's the exception to the rule - usually it's all fine.

zombie's question:

What about adding threading support into PHP (maybe only on a script level, not for functions or classes)?

There are (or at least were) people looking into it, and you can implement it to some degree using the pcntl extension. Real threading in PHP's level is something which is pretty difficult to achieve, even though it's possible.

pickleman78's question:

When you were creating PHP, did you ever imagine that it would become so popular?

Easy one - no, I absolutely didn't. When I was working with Andi in between studying for exams, it was more of an excuse to pause or stop studying, than some master plan to take over the world. :)

awx777's question:

What do you think about software products that are alternatives to Zend's products? Are you confortable with that ? In particular, what do you think about ioncube's encoder and accelerator ?

I have no problem with competition. It keeps us on our toes. The real competition comes from ASP, if we look at the big picture.

As far as PHP-based products are concerned, there will always be some need for minimal copycat features, but I feel that commercial-grade customers need products that have thorough QA and technical support processes, not to mention innovation in identifying new requirements. For example, our latest releases of both our software protection (SafeGuard Suite, in September) and site performance (coming in November) products both moved up to a completely new level. From that perspective, customers clearly see the benefits they get from working with Zend.

postalcow's question:

Do you see PHP becoming featured enough to replace perl?

Well, I know for a fact that PHP is being used in quite a few setups as a general purpose system administration language. Lately, a CLI SAPI module was introduced as well, which is basically the same old CGI module, but stripped from any HTTP interfacing support, so that it's more suitable for day-to-day system administration. That said, I don't think PHP will replace Perl. Rather, people who are already used to PHP and like it a lot, are likely to also use it for other purposes.

Sources and Legacy Context

For the broader PHP history, the PHP manual's history page documents the PHP 3 rewrite and Zend Engine milestones, and Zend's own company history gives the 1997 PHP 3 and 1999 Zend Technologies timeline.

Sources

  1. [1]
  2. [2]