December 09, 2020
Following the 25th anniversary of PHP this summer and the introduction of PHP 8 on November 26th, I took a moment to chat with our CTO, Zeev Suraski, who is also the cofounder of PHP. We discussed his history with PHP and his perspectives on the recent release of the controversial PHP 8.
Hi Miriam! My name is Zeev Suraski. I live with my wife and three adorable daughters in Givatayim, Israel (with two dogs, a few fish, and one guinea pig). I joined Strattic as CTO over a year ago.
My involvement with PHP began in 1997 when I was a computer science student in the Technion. I was working on a project as part of the electrical engineering department that curiously had nothing to do with electrical engineering.
Our assignment was to create a basic web-based shopping cart. (Back in the day, that was considered bleeding-edge tech worthy of 5 academic points, which was quite a lot.) Knowing PHP/FI from my workplace, I convinced my project partner Andi [Andi Gutmans, later to become Zeev’s partner at Zend -MS] to use it for implementing the project (telling him we’d be able to finish quickly without having to invest too much energy into it – yes, we were lazy students).
After some persuasion, we also managed to convince our supervisor to use it, even though she told us numerous times that everyone else working on that project was using Perl.
Fate had it that as we finally got around to implementing the project – about half an hour in, we bumped into obscure errors. At some point – despite our lack of experience with PHP/FI – we came to the conclusion that there was nothing wrong with our code, and that the interpreter was actually having a hard time understanding its own language.
We dove into the code and found it to be written in a problematic way that was very prone to bugs and problems. (We certainly felt as if we were experts – after all, we had completed an intro course to compilation techniques during the prior semester!) We consequently decided to try and write our own implementation to see how far we could get.
I think it’s fair to say we got a lot farther than we ever imagined possible.
Meeting people from all over the world is definitely one of the most interesting aspects of PHP. Both folks that work on the project itself, as well as users that are using PHP to implement all sorts of things that again, we never imagined when we started working on it.
It’s worth mentioning that over the course of PHP’s lifetime, the web itself exploded and is now everywhere, as opposed to something mostly just geeks care about. The explosion of mobile and, in turn, the web services it consumes, made it reach truly every corner of our lives. That means I got to meet all sorts of people, from all over the world, and from very different backgrounds and industries.
They all had something in common: PHP was instrumental in helping them solve their problems and realize their vision. Having folks thank you for helping shape their careers and put bread on their tables is also a very unique, rewarding experience.
Zend is a company that Andi Gutmans and I founded around twenty years ago in the early years of PHP. PHP back then was growing at a very rapid pace, to the degree that we seriously questioned the data we were getting from Netcraft (a web surveying company) at the time that indicated huge growth. It appeared a bit too good to be true, perhaps even more than a bit.
However, at the same time, we started getting a growing number of requests for all sorts of things that spanned beyond the scope of the open-source project – things like commercial support, distributing PHP apps without disclosing their source code, etc. By the end of 1999, we realized that Netcraft was probably not off and that there was a real need for a company that would provide commercial backing to PHP in a similar way to what RedHat did for Linux.
That’s how Zend was born.
In fact, to be more accurate – that’s how Zend the company was born. The name was born a year or so earlier, when my dad, Amram, came up with this catchy combination of Andi’s name and my name in a moment of true genius.
It’s so difficult to choose, between all the crazy parties and the life-endangering extreme activities this job takes you on. No, really! 🙂
On a more serious note, probably the craziest story I had is when my wife and I went on a honeymoon to South America.
We arrived at this tiny boutique hotel in Buenos Aires, tired after a very long flight. Checking in was old-style, i.e. we filled out a paper form and handed it over to the clerk. As the clerk was reading it and typing it in, he suddenly asked me “You’re Zeev Suraski? The PHP guy?” I was stunned. Why would a hotel receptionist on the other side of the planet know about PHP and me, specifically? It turned out he was using PHP to build a social network for his neighborhood (San Telmo), and what do you know – he knew who I was!
Yes, it certainly is. Zend was acquired in 2015, and it’s now a part of Perforce Software. Its mandate remains the same: to provide commercial backing for companies who use PHP in business-critical environments.
When you look back, what was one of the PHP projects that you worked on that you’re most proud of?
I’ve worked mostly on PHP itself, not so much on projects written in PHP (although I’ve written quite a bit of PHP code for my own needs). But changing the question a tiny bit, I can say that I’m extremely proud PHP played a substantial role in the creation of Wikipedia. That truly is a project that changed the planet for the better.
That really is a world-changing contribution. What are some apps, websites, or tech you couldn’t live without?
Oh, there are so many of those. Our lives now revolve around technology to a large degree.
It goes without saying that none of us can imagine our lives without our mobile devices. It still amazes me that just 10 or 12 years ago, this whole part of our lives simply didn’t exist.
One gadget that really augments the mobile experience that I can’t do without today is AirPods. I’ll admit I wasn’t a big fan of the concept when it came out, but since I’ve gotten them, they’ve been a life-changing experience.
In a very different category – and as unhealthy as it is – I think I’d have a very hard time giving up on Twitter.
And from a very separate category, I absolutely love our smart cleaning robot (Roborock S60).
So yes, tech is pretty much all over the place nowadays, and so is my answer. 🙂
In the case of PHP, the JIT engine will open the door for PHP to be used in workloads where it cannot be used effectively today. Combined with some other features (like FFE – Foreign Function Interface – using native code libraries directly, without the need for specialized extensions) and increased optional type strictness, I believe we’re going to see new types of backend workloads that will be implemented on top of PHP.
There are two categories of strictness that will challenge users.
First off, PHP 8 has permanently removed any feature that was deprecated in the 7.x releases, and some that were even deprecated in earlier 5.x versions.
When a feature is deprecated, it’s not immediately removed. You, the user, may get a notice, but depending on the configuration, it may be disabled or otherwise suppressed. Over the years, throughout the lifetime of the major version, we accumulate those deprecated features which can still be used. But in the subsequent major release, it’s permissible to remove them, and that’s precisely what is happening with PHP 8. That by itself can add a lot of headaches for migration. Maybe you’re aware that these features were deprecated, and maybe you were blissfully unaware (if you had those error messages disabled); either way, now it’s payday. You will no longer be able to ignore those messages.
If you followed those changes and discontinued the use of features that were deprecated with every version that got released, then you have less to worry about.
Arguably, even more challenging, PHP 8 is now a lot more aggressive in validating certain types of arguments that are passed through internal functions.
In PHP 7, arguments were juggled and converted, perhaps with a warning. However, in PHP 8, if PHP thinks you sent the wrong kind of argument – execution will stop. Unfortunately, there is often no way to really assess if your app is compatible with PHP 8 other than thoroughly testing every last corner of the code. You will not only need to thoroughly review the code but also go through a rigorous QA cycle, something that wasn’t truly necessary in the upgrade to previous major versions (notably PHP 7).
PHP 8 is going to be more challenging, and updating larger WordPress plugins for PHP 8 compatibility will take time.
Depending on the market reception, I think we may see some changes made to PHP to make migration easier. Overall, I wouldn’t recommend anybody who has a large PHP codebase to run and upgrade to PHP 8, definitely not unless they can afford to thoroughly test the app. I think that the best approach for most people is to wait a bit. Let the early adopters find the major issues (if there are any), for apps and plugins to get updated, and potentially for some of the thorny parts of the upgrade to get resolved.
In general, I think for most WordPress users, PHP 8 is not going to be all that interesting.
But it really depends on the kind of user.
For plugin developers, once they overcome the challenge of getting their plugin fully compatible, some of the new language-level features might be of interest.
Also, at least in theory, the new JIT engine opens the door to creating compute-intensive capabilities that weren’t practical before due to performance considerations. Whether or not there’s an intersection between that and something that’s relevant to WordPress, it’s hard to tell, but it’s possible.
For regular WordPress end-users (not plugin developers), I think for the most part PHP 8 doesn’t bring too many interesting capabilities directly. It will be interesting, or not so interesting, depending on whether new types of plugins are created (as mentioned before).
This is different from PHP 7 where even if you didn’t care at all about the code and were just a regular end user, upgrading to the new version would have roughly doubled your performance on the spot.
Then, there are the gigantic ecosystems that are built on top of PHP – like WordPress, Drupal, Magento, Joomla, and others – which power very large chunks of the Web and aren’t going anywhere. So all in all, I’m very optimistic about the future of the platform and think it will continue to thrive for a very long time.
I came across Strattic a couple of years ago. When you and Josh pitched it to me, I honestly had a hard time understanding how it would work. I think that my 20-year old version of me would have just said something like, “This would never work, what a waste of time!” A 30-year old me would have thought the same, but would probably say “Wow, nice idea, good luck!” out of politeness.
But thankfully, the 40-something-year-old me, despite having the same initial thoughts, continued into the “But what am I missing here?” stage. And after spending a bit more time thinking about it and looking into it, I came to the conclusion that this was in fact an awesome idea. So awesome, that I actually invested a bit in the super early stage of the startup, and within a year or so joined it full-time.
It’s my pleasure, and I’m really looking forward to seeing the next stages of the web and how it evolves, ideally being led by Strattic. 🙂
Co-Founder & CEO of Strattic
After years of dealing with the ongoing struggle of keeping client WordPress sites secure and performant (and not sleeping so soundly at night :)), she realized that these issues could be solved in a radical way by converting the sites to a static, headless architecture, and founded Strattic.