Ramsus Lerdorf was the original creator of PHP, which has evolved from his personal home page project into an open-source scripting language used worldwide. Lerdorf was interviewed recently via e-mail by Computerworld online managing editor Sharon Machlis.
Q: What would you like corporate IT managers to know about PHP? A: PHP is not a major investment if they choose to use it. Obviously, being open source, there are no license fees to pay. But more importantly, the learning curve is extremely shallow and it draws on the skills the existing IT staff is likely to already have. PHP is not a new and revolutionary language. It borrows much of its syntax from languages such as C, Perl and Java.
Q: What are the major advantages of PHP? What is it best at? A: It is a very focused language. It focuses on the Web problem. If you read PHP's excellent online documentation, you will see everything is geared towards solving Web-related problems. It was written by Web developers for Web developers.
PHP is perfectly suited for quickly creating a Web front end to just about any back-end system you can imagine. Typically, the back end would be a database, but it can also be [a Lightweight Directory Access Protocol] directory server, or [Simple Network Management Protocol]-manageable devices, just to name a few. PHP is also good at generating non-HTML dynamic content for the Web such as images, flash or [Portable Document Format] documents. Being able to pull customer information from a database and dynamically generating a professional-looking PDF invoice, for example, is something that is very easy to do in PHP.
Q: What do you see as its drawbacks? What Web tasks do you think it's less well-suited for? A: There really aren't any drawbacks when it comes to Web tasks, but I guess that depends a little bit on where you draw the line between Web tasks and back-end tasks associated with the Web. PHP's strength is in the front-end Web interface. As you move more towards the back end, PHP usefulness starts to decrease. For example, you would never write a full back-end database engine in PHP. You also wouldn't write any sort of middle-layer system for a three-tier architecture in PHP.
As the top presentation layer in a three-tier architecture, PHP does just fine.
Q: What's interesting in the works for near-term PHP future developments? A: Deep in the guts of PHP, the object-oriented program [OOP] is going to be improved a bit. PHP has traditionally been a procedural language, and OOP features have crept in over the years to the point where PHP can be used as a decent OOP language. But there are some things that can be improved with respect to this OOP support.
Namespaces is another feature that is coming.
At the higher level, I think you can expect PEAR [PHP Extension and Application Repository] to start becoming much more useful. PEAR is a collection of userspace code for solving many Web-related problems that didn't belong in the core of the language itself.
You will also see some nice ways to build [Simple Object Access Protocol/Web Services Description Language] services with PHP. You can do this today, but I would like to see this become more transparent and am working towards that.
Q: Do you have any thoughts as to why someone should choose PHP over Microsoft's Active Service Pages (ASP)? A: This is a difficult question to answer without getting into philosophical issues. I will try to avoid those and just look at it from a practical perspective:
Windows 2000 Server: $3,999
Internet Security and Acceleration Server: $5,999 per CPU
SQL Server 2000 Enterprise Edition: $19,999 per CPU
MSDN Universal Subscription (w/ DevStudio): $2,799 per developer
List prices from Microsoft.com
This can add up quickly. And you probably need to add some Internet connector licenses, maybe an Exchange server license if you are doing e-mail handling and perhaps the content management server, which is a whopping $42,999 per CPU.
Many will of course argue this point, but I can build you a similar setup using Linux, Apache+SSL, PHP, PostgreSQL and Squid. And there are a number of good open-source content management systems I can throw in as well. They don't all come in shrink-wrapped boxes with slick documentation, but the one thing they certainly do is work.
Set up a nice load-balanced architecture using Squid as a reverse proxy on the front end to a couple of Web servers on the back end with a separate database server. Toss in some database replication for load balancing and robustness. So perhaps five machines with two CPUs in each. The software alone could cost you over $300,000 for that, compared to $0. In this economy, this is significant.
Then there is the fact that managing an IIS [Microsoft Internet Information Server] server has been a nightmare this year. One security issue after another.
This doesn't mean that the alternatives don't have security issues every now and then, but at least you are not paying someone $300,000 on top of having to keep up with frequent security patches. For that kind of money, you should expect robust enterprise-strength software, which just works all the time. I don't mean to offend the Microsoft crowd out there, but that just hasn't been the case up to now.
Putting the whole Microsoft proprietary software vs. open source-debate aside, why should you pick PHP over ASP? In the end, they basically do the same things. Although some feel development environment is nicer for ASP than the various options for PHP, PHP has a lot of built-in functionality that you need to drop to COM [Component Object Model] to match in ASP, so from a development perspective it is probably a tossup.
If you are a devoted Microsoft shop and have developers who already know VBScript and the various other Microsoft technologies, you should probably choose ASP. If you are starting out fresh, you owe it to yourself and to your bean counters to take a long hard look at PHP and all the other great open-source alternative tools out there.