|[Home] [Credit Search] [Category Browser] [Staff Roll Call]||The LINUX.COM Article Archive|
|Originally Published: Monday, 9 July 2001||Author: Jeff Alami|
|Published to: develop_articles/Development Articles||Page: 1/1 - [Std View]|
The Future of PHP: An Interview with ActiveState's Shane Caraveo
Linux.com Develop section editor Jeff Alami delivers an exclusive interview with Shane Caraveo, a core developer of PHP and asks what's in store for the future.
PHP. Whether it stands for Personal Home Page tools, or the PHP Hypertext Processor (a more worthwhile acronym in the open source community, given that it's recursive), PHP is a language used the world over. A PHP script communicating with the Apache Web server serves this page you're reading -- a large chunk of all the pages on the Web are also served by the language.
But what makes PHP so popular and useful? Is it the simple, no-hassles approach to quick database-driven applications? Is it because it's an open source language whose implementations can be downloaded at no charge? Or are there "make-or-break" features in PHP that make it a favorite among Web developers?
Whatever the reason, PHP is one of several languages of choice for developers targeting the Web. In our investigation of PHP, and what's in store for its future, Linux.com had a chance to talk to one of the core PHP developers. Shane Caraveo is ActiveState's PHP technical lead, the architect of the initial SAPI architecture that PHP uses to interface to Web servers, and has worked on several projects involving PHP, including its Win32 port.
We asked a few questions about the language, some of his work, and what's going on at ActiveState.
Shane Caraveo: I think each release of PHP has been a major milestone for the language for different reasons. I've been involved with PHP development since early development on version 3.0. The 3.0 release provided three very important improvements, a rewritten engine, more standardized module implementation, and the win32 port. 4.0 has gone leaps and bounds beyond 3.0 due to a vastly improved language engine from Zend, support for multithreaded servers, the introduction of a Server API (SAPI), in addition to improvements almost everywhere else that allow PHP to be easily plugged into various web servers and systems. But none of this would matter much without the large amount of extensions developed by the PHP community to support just about everything, possibly including the kitchen sink. 3.0 had probably around 20 or 30 extensions, 4.0 has close to 80.
Linux.com: What would you consider to be PHP's major weaknesses, especially when dealing with its standard uses, such as database-driven Web applications?
Shane Caraveo: It's tough to knock something you love, but there are a couple things that always tend to bother me about PHP. I think some of the prominent weaknesses with PHP today have less to do with its standard uses than with some core language issues. What I mean by this is the lack of a full implementation of object support, and usability issues on the Windows platform. Fortunately, a new engine for PHP is in the design stage that will fill out the object support, providing many features that have been missing there. Usability issues under Windows are primarily problems with running PHP under IIS, related mostly to a lower level of usage and testing on that platform. I think that PHP would gain a lot by dealing with these issues.
Linux.com: What are three of the biggest concerns facing PHP in its future development and application?
Shane Caraveo: I don't have any overly large concerns about PHP's future, so I can only answer this from a personal perspective with how and what I use PHP for, but that is also a large part of the open source model: things get done that people have interest or need in doing. There are two things that have been nagging at me for the past couple months.
The use of common script components and extensions to allow developers to more easily tie their applications into one another. PEAR (PHP Extension and Application Repository) has the capability to start to address this issue, but I don't see many PHP applications out there using it yet. Developers need a way to more easily build and share their PHP components, and PEAR needs to provide that for PHP in the same way that CPAN does for PERL.
Windows stability as a multithreaded plug in for web servers is going to be crucial for wide acceptance outside the Linux/Unix community. I think the Win32 port has helped in PHP's growth, but it still seems to have some way to go before it is more readily accepted as a production capable system.
Linux.com: Perl has a standard DBI interface for all its database access. Do you think it would be worthwhile to introduce a similar standard set of functions in PHP?
Shane Caraveo: That's happening already. PHP has PEAR, which includes a growing set of common script code that can be used by PHP developers, including a database abstraction layer. Another library called phpLib has also existed for a very long time, and at one point was going to be integrated into PEAR, but I'm not sure how far along that got.
Linux.com: How would you describe your fellow PHP developers around the globe?
Shane Caraveo: A great group of people. I've learned a lot through my interactions and working with them.
Shane Caraveo: ActiveState wants to support all major open source programming languages. These include PERL, Python, TCL, and XSLT in addition to PHP. Our developer resources, such as ASPN, Komodo and other tools we produce will eventually be expanded to support whatever languages are in high demand. PHP use is growing extremely fast, and is well suited to be used with other technologies we're currently looking into.
Linux.com: What do you think is the best part of working for ActiveState?
Shane Caraveo: ActiveState has a very dynamic environment to work in. I get to work with a lot of very cool, very intelligent people from all over the world, while at the same time getting to do some things with PHP.
Linux.com: Is the company looking at using more PHP in the future? It seems to be more of a PERL-oriented shop.
Shane Caraveo: ActiveState got its start with PERL, but that is not the limit of what ActiveState does today. Currently we're involved with Python, TCL, PHP, XSLT, and will be expanding into other languages and technologies as well. As we turn out new products and features support for all our languages will be available in them. My job here currently is to handle developing the PHP support for our products. As things move along, you will see more PHP support from ActiveState.
Shane Caraveo: I was developing some yellow page sites for countries in the Caribbean a few years back, and had started using ASP. I found it aggravating to work with, and remembered someone mentioning PHP to me once before, so I looked into it. I started developing with it, uploading scripts to a Linux server to test, and found that very aggravating also, so I got MSVC and ported it. That was PHP 2. Once that was done, Rasmus Lerdorf (the originator of PHP) "convinced" me to work on PHP 3. It didn't take any arm-twisting to be convinced. :)
Linux.com: Why did you get involved in PHP development as opposed to other languages? What do you see in PHP specifically?
Shane Caraveo: In a way, I just kind of fell into it. I was using PHP heavily for my own personal projects, and had the need and time to help out with furthering PHP development. PHP was very easy to learn and quick develop in. I had more headaches trying to get ASP or PERL working and didn't have the time to deal with that.
Linux.com: What would you consider was the hardest part of the PHP Win32 port?
Shane Caraveo: There wasn't anything terribly difficult about it, it just took someone to devote the time and effort to make it happen. I guess the biggest issue I faced was that few PHP developers (at the time) worked with Windows, so I was the primary developer and tester for quite a long time. Since PHP 4 started, there are a handful more developers working on the Windows port; I really enjoy seeing more interest in that direction from the developer community.
Linux.com: What are the biggest obstacles in getting the Komodo IDE to support so many programming languages (PERL, Python, PHP, TCL, and so on)?
Shane Caraveo: I was lucky in that aspect, much of that work was done prior to my starting with ActiveState, so when I went to implement PHP support it was quite easy to do. The Komodo team here has done a lot of good work in building a system to support multiple languages.
Linux.com: What kind of developer is Komodo targeted for?
Shane Caraveo: All of them! :)
Linux.com: If you had to convince a room full of PERL developers to consider PHP for their next large project, what would you say?
Shane Caraveo: What would a PERL developer say to a roomful of PHP developers? I'm not very evangelistic, and I try not to get involved in trying to convince anyone of anything in those types of situations. The way I feel about it is that different languages (and platforms) have strengths and weaknesses, and if you are starting a new project, you need to analyze what language fits best with your experience, your team, and the needs for the project. That said, I feel PHP has a lot of strengths over PERL in the Web development arena, and it's well worth any developer taking the time to investigate using PHP for any Web project. I find that people will see the light once they've tried PHP!
Jeff Alami (firstname.lastname@example.org) is a mechanical engineer by training, a computer geek by experience, and a writer by interest. He ends with these words for aspiring open source developers: Tuum Est, It's Yours, it's up to you to make of it what you want to make of it.