Zeev Suraski needs no introduction. He is the Co-founder of Zend Technologies and is credited for some exceptional work around development during his career. In 1997, he created PHP 3 with his friend, Andi Gutmans. The name Zend is basically derived from Zeev and Andi.
Zeev’s contribution to PHP can never be ignored because it was his efforts from his early days that actually resulted in more than 20 million PHP based websites. He made significant contributions in writing the Zend engine and is also a member of Apache Software Foundation.
I had the honor of interviewing Zeev, where he shared his experiences and thoughts. He also talked about his early career struggles. He also shared his views about major PHP frameworks like Laravel and Zend and also shared his expectations about PHP 7. Now, without any further wait, let us read his exclusive interview to Cloudways.
Cloudways: Zeev, you have a big name in the PHP world. When did you first start off with PHP programming? What was your source of motivation to come into the PHP World? Did you ever thought of becoming a PHP guy?
Zeev: I don’t have an exact date, but it was sometime in 1997. Back then I worked at Netvision (an Internet Service Provider), and I was half of the Web development team there. The other half—a guy named Ophir Prusak—was primarily a Perl developer, but, at some point, he made the switch to PHP/FI. He told how much simple and easy it was to create web applications using it. At the time, I was a young kid with a somewhat supremacist point of view regarding programming languages. I looked down at languages like Perl and PHP/FI, as I was using C and C++ to build my web apps. Yes, it’s fair to say I was a bit of an idiot back then. 🙂
What changed this stance is the fact that Andi and I had to deliver a university project: an Ecommerce Shopping Cart. As students that preferred to invest their times in real world work and not so much in university studies, I recommended using PHP/FI as the quickest and most pain-free way to do it. That university project, back in 1997, was the first time I used PHP.
Our instructor at that project was not very happy with our choice of language; it was one she’s never heard of. Everyone else was using Perl. After persistent persuasion, we did manage to convince her and were allowed to use PHP, but she said we’d be graded based on this choice as well. In other words, if that language turned out to be really bad and can’t do the job, it’s our problem. Being the overconfident youngsters we were back then, we didn’t take this warning too seriously, but she kind of knew what she was talking about. Once we actually hit the ground development (after writing countless requirements and design documents), it only took us about half an hour to bump into a very obscure bug in the language (and perhaps a few more minutes to realize it’s really a bug in the language engine and not in our code). We looked under the hood and were quite surprised to see what we saw. The parser was written in a way that wasn’t taking advantage of grammar, and consequently, was extremely prone to bugs. In fact, it was a bit of a miracle it worked as well as it did, considering how it was written. At that point, which I can’t completely explain, Andi and I decided to set aside our Shopping Cart project, and to make a long story a bit shorter, we started rewriting the whole language from scratch.
Cloudways: How did you get into programming? What was the motivation behind it? Who were your early inspirations?
Zeev: That was a very long time ago, probably around when I was 8 or 9. Udi, my older brother, had a Dragon 32 computer which he used for his computer class in high school. (He’s 8 years older than I am.) I can’t say I truly remember—it was a VERY long time ago—but I guess I was watching him write these BASIC programs and I joined him sometimes. The first program that I remember writing was some sort of very crude block animation in BASIC.
To speak of inspirations at this age would be a bit too much, I think it was just interesting and fun. As time went by, I dove more and more into it and ended up studying Computer Science in university.
Cloudways: When did you first meet Andi Gutmans? How do you see his contributions in Zend and PHP? Did you guys ever thought that the language you were writing back in your university days in 1997 will become a basis for number of web applications to follow? Who are some people that you want to mention that helped PHP stand where it is today?
Zeev: I actually first met Andi on IRC, but shortly afterward, we met face-to-face at the University we both went to. We were college buddies for a long time before we got involved with PHP, and once we did, we worked on it very closely together. To put it simply, PHP as we know it today would not have existed without him. He was instrumental in the ground-up rewrite of PHP 3, that is the first version that introduced the core syntax that is still with us even in PHP 7.
Cloudways: You created PHP 3. It was a big achievement at that time. Kindly share what challenges did you face in the development of PHP 3?
Zeev: First to give credit where credit’s due, Andi worked on it as hard as I did. Plus, it became a community project with contributions from dozens of people before it went out.With PHP 3, our goals were:
- Create a ‘real’ language, based on statements, expressions, and association rules, which was a big break from PHP/FI 2.
- Make it easy to extend by adding functionality to PHP/FI 2. This required changes to the parser and scanner, and generally speaking, it was quite a difficult task. We wanted to create a base that people would be able to easily contribute to and extend.
- Make it go much faster.
- Do all of that while not flunking our university courses. 🙂
Overall, I think we succeeded pretty well with the exception of item #3. Even though PHP 3 was about 3x faster than PHP/FI 2, I think it’s fair to say it was still very poorly architected in terms of the execution engine. Still, the key traits of #1 and #2 made it immensely successful—and thankfully, we managed to make a lot of progress on #3 with PHP 4.
Cloudways: What do you think about PHP frameworks and how do you see them fueling the PHP ecosystem? What frameworks do you think are most evolved and can cope up with the future?
Zeev: I think frameworks are extremely important in the PHP ecosystem, and have helped proliferate it well beyond what it used to be 10 years ago. But honestly, I think that at this point, it’s fairly pointless to speak about a single ‘most advanced’ framework. Perhaps the most important evolution in PHP in recent years is the ability to mix and match components from different frameworks, greatly helped by Composer. With Zend Framework 3 (ZF3), we’re pushing this approach a couple of notches up—and componentizing it as much as possible. The PSR standardization process is making it even easier to mix and match components.
While I think ZF3 is shaping up to be awesome, I can’t say anything bad about the other leading frameworks. I would choose one that lets you continue using the components you like from other frameworks, though.
Cloudways: Laravel is so hip. It is considered as one of the most popular PHP frameworks ever built. How do you think of this effort by Taylor Otwell? What are some new and advanced things you are seeing in the PHP world?
Zeev: I think Taylor is doing a great job, and he also seems like a great guy. Laravel indeed boomed in popularity. For me, as long as you’re using PHP, I’m happy. Be it with Laravel, Zend Framework, or your own custom code. Whatever you feel does the job for you!
Cloudways: PHP 7 is expected to be released before the end of 2015. What are your expectations with this release? Any advice to web developers about why they should move to PHP 7? What would you like to recommend to webmasters about the compatibility of PHP 7?
Zeev: I think PHP 7 is extremely exciting news. Given PHP 5.6 was already one of the quickest interpreted languages, being able to squeeze roughly 2x better performance on real world workloads, while trimming down memory consumption by 30-40% – is a very big deal. I think it will help rejuvenate the PHP ecosystem. There are also a bunch of new features in PHP 7 that can be interesting to developers, but from my point-of-view, the blazing-fast performance is probably the number 1 reason to invest in migration.
In terms of compatibility tips, we have a pretty good migration curve. Interestingly, even though we did a pretty radical refactoring of the engine to realize these performance gains, this in itself brought with it practically zero compatibility issues. The compatibility issues we do have are almost all related to informed decisions we took – using the RFC process – in areas where we felt it was warranted to break compatibility.
My recommendation is not very different from what you should do when you’re upgrading from PHP 5.x to 5.x+1: Test. Chances are it will just work, and if you do bump into issues, they would be very easy to fix. The bigger challenge is finding issues than fixing them.
Cloudways: With the launch of PHP 7, a lot of compatibility issues are expected with PHP built CMS software and their plugins. Do you think it will be a challenge for hosting companies and developers to make the switch?
Zeev: I’m actually not so sure we should expect a lot of compatibility issues. Most of the compatibility issues are rare and unlikely to affect most pieces of code. Most of the popular PHP apps—WordPress, Magento, Joomla, Drupal—simply run on PHP 7 without mods. That said, I’m sure there will be some issues around the edges, which is why it’s extremely important to thoroughly test ahead of time.
Cloudways: Coming to the community side, for someone who is looking to delve into the world of PHP, from where would you recommend to start off with besides the core coding? Which communities would you recommend to start following for PHP? How much has the PHP community evolved over the past 10 years? How do you see the PHP community these days?
Zeev: The challenge on where to start is that there are so many good ways to do it. There are good books, great tutorials, and getting-started courses available, both online and on-prem. It really depends on how you prefer learning something new—tinkering with it yourself or doing more of a ‘formal’ process. But, perhaps even more importantly, first try to search whether someone else has already created something similar to what you need. If you find something like that, a great way to learn is reviewing other’s code, and then evolving and adjusting it to your needs.
Regarding communities, I think the best way to start is with your local community if you have one. User groups make for an excellent way to meet other PHP developers. Learn from their experience and get educated on technologies. If you do get involved extending other people’s code, consider sharing your improvements and contributing back instead of keeping it only for yourself. With GitHub, this is exceptionally easy and there’s really no excuse not to do it in this day and age.
Cloudways: Tell us a little about your current role at Zend.
Zeev: I’m the CTO and VP of Engineering for Zend, which in simple terms, means I head the technology side of things for the company. It’s a pretty awesome position—where I get to work with community leaders like Dmitry Stogov and Matthew Weier O’Phinney, and on bleeding edge technologies like PHP 7 and Z-Ray. In addition, I get to meet people in companies that have very interesting PHP deployments, and I’m no stranger to conferences. No complaints!
Cloudways: Earlier this month, a news came that Rogue Wave software has acquired Zend technologies. How would it affect the Zend framework? Would it be advantageous for the PHP community?
Zeev: Generally, I don’t expect the acquisition to affect Zend’s involvement with open source projects, and in the long run, I hope that it will enable us to actually grow it; given that Rogue Wave is a larger company. Time can only tell. On that note, we’re about to launch Zend Framework 3 in the coming months and we’re very excited about it.
Cloudways: While preparing this questionnaire, I read some of your previous interviews. You said somewhere that you are really interested in getting a piece of land and growing some food and trees on it and playing a farmer for a while. Did this plan worked out or are you looking forward to it? What is the vision behind this?
Zeev: I commend you on the research. I almost forgot I said it!
So far, that hasn’t materialized. It almost seems from a different life – before I had kids. I’m afraid I’m a lot more entrenched in the city now, and barely have time to even think about such possibilities. But I’m not ruling it out in the future. I still love the outdoors to the city any day!
Shahzeb Ahmed
Shahzeb is a Digital Marketer with a Software Engineering background, works as a Community Manager — PHP Community at Cloudways. He is growth ambitious and aims to learn & share information about PHP & Laravel Development through practice and experimentation. He loves to travel and explore new ideas whenever he finds time. Get in touch with him at [email protected]