Skip to main content

PHP 5: Evolutionary or Revolutionary?

The July 2004 issue of Linux World contains an article entitled "PHP 5: Evolutionary or Revolutionary?" Since I've built several applications in PHP, I was curious to see what has changed and whether or not it truly is revolutionary. The leap from PHP 3 was indeed a large one and with it came huge performance and stability improvements. The other thing this got me thinking about is whether or not their "revolutionary" features are revolutionary in comparison to my technology of choice, ColdFusion.


According to NetCraft, PHP is now installed on over 15 million domains, so it's by no means the little-known scripting language it once was. It's especially popular amongst the open-source crowd, and it's more or less the technology of choice if you're doing web development on Linux with MySQL. I actually like PHP--it's quite powerful, has an impressive library of functions built in, and is pretty quick to develop with. I definitely don't shy away from it in freelance work like I do Classic ASP; it's fun to work with and I always get good results.

I was very curious to see the new features, because in some ways (OOP and XML being two biggies) PHP 4 is a bit behind the times. Not surprisingly these are the two major areas they've improved things with PHP 5.

One of the major complaints about PHP from developers of extremely large applications is that PHP's OOP features just aren't robust and capable enough. The main issue with the OO behavior in PHP 4 is that objects are always copied during assignments and parameter passing. Bad stuff in general, but particularly if you aren't aware that's what's going on. This can cause some freaky behavior that's pretty tough to debug, and the workarounds just aren't very satisfactory. In PHP 5 (specifically in the new Zend II engine) objects are now "handles" (like in Java or pointers in C++), which means you can throw objects in and out of functions, etc. and you always end up pointing to the same object. BIG improvement.

The other big improvement is in the XML functionality. They've added a new SimpleXML extension to greatly reduce the complexity of creating and parsing XML documents. A simple function call like $myXml = simplexml_load_file('filename'); will load and parse your XML file. Great, lovely, just what the doctor ordered. There's also a new SOAP extension that allows for development and consumption of web services natively in PHP 5. Again, nice addition.

What I go back to, however, is whether or not any of this is really a big deal. In the PHP world it certainly is, because now PHP is on par with other technologies like .NET, Java, and of course ColdFusion. Evolutionary? Definitely, but by necessity. Revolutionary? Hardly. There's nothing in PHP 5 that can't be done in other languages, and in ColdFusion you can do all these things and more far more simply.

I wouldn't get on my high horse but the final sentence of the article is as follows: "This new version [of PHP] only increases the challenge for its competitors to catch up." Catch up? Hardly! I've been able to do everything PHP can do in ColdFusion for quite some time now, and we're only a few months away from a new release of CF that will raise the bar even further. I welcome the new functionality in PHP, and I'll be darn happy it's there for my PHP projects, but I think all they've really done is caught up with this release. Given a choice I'd still go wtih CF whenever possible, but at least now PHP doesn't tie my hands or force me to kloodge things like I used to have to.


Popular posts from this blog

Installing and Configuring NextPVR as a Replacement for Windows Media Center

If you follow me on Google+ you'll know I had a recent rant about Windows Media Center, which after running fine for about a year suddenly decided as of January 29 it was done downloading the program guide and by extension was therefore done recording any TV shows.

I'll spare you more ranting and simply say that none of the suggestions I got (which I appreciate!) worked, and rather than spending more time figuring out why, I decided to try something different.

NextPVR is an awesome free (as in beer, not as in freedom unfortunately ...) PVR application for Windows that with a little bit of tweaking handily replaced Windows Media Center. It can even download guide data, which is apparently something WMC no longer feels like doing.

Background I wound up going down this road in a rather circuitous way. My initial goal for the weekend project was to get Raspbmc running on one of my Raspberry Pis. The latest version of XBMC has PVR functionality so I was anxious to try that out as a …

Setting Up Django On a Raspberry Pi

This past weekend I finally got a chance to set up one of my two Raspberry Pis to use as a Django server so I thought I'd share the steps I went through both to save someone else attempting to do this some time as well as get any feedback in case there are different/better ways to do any of this.

I'm running this from my house (URL forthcoming once I get the real Django app finalized and put on the Raspberry Pi) using I don't cover that aspect of things in this post but I'm happy to write that up as well if people are interested.

General Comments and Assumptions

Using latest Raspbian “wheezy” distro as of 1/19/2013 (’lll be using Nginx ( as the web server/proxy and Gunicorn ( as the WSGI serverI used heavily as I was creating this, so many thanks to the author of that tutorial. If you’re looking for more details on …

The Definitive Guide to CouchDB Authentication and Security

With a bold title like that I suppose I should clarify a bit. I finally got frustrated enough with all the disparate and seemingly incomplete information on this topic to want to gather everything I know about this topic into a single place, both so I have it for my own reference but also in the hopes that it will help others.Since CouchDB is just an HTTP resource and can be secured at that level along the same lines as you'd secure any HTTP resource, I should also point out that I will not be covering things like putting a proxy in front of CouchDB, using SSL with CouchDB, or anything along those lines. This post is strictly limited to how authentication and security work within CouchDB itself.CouchDB security is powerful and granular but frankly it's also a bit quirky and counterintuitive. What I'm outlining here is my understanding of all of this after taking several runs at it, reading everything I could find on the Internet (yes, the whole Internet!), and a great deal…