Technology update: the PHP 5 debate
One of the responsibilities of a major web design firm is keeping abreast of new technologies, not only in regard to how these may help clients, but also in regard to how rushing to embrace new technology may be disastrous. A case in point is the current debate over PHP 5. PHP is a web-scripting language used for online data processing, form submission, context-sensitive page content, and even just for stitching together pages from shared files. It has largely replaced Perl as the language of choice for such tasks (ASP was never really in the running, despite what Microsoft will tell you). Although PHP started as a hackers toy, version 4 introduced some very advanced features (a core Object model, stream programming, FTP push functions, access to Unix shell commands, among others) which pushed it to the leading edge. Corporations are beginning to adopt PHP for enterprise-level software applications, and there is now a certification program, something previously conspicuously missing in the Open Source community. Version 5 was released in Mar, 2004, but 15 months later, only 15% of the websites in the world that use PHP have upgraded. PHP 5 contains some major updates to the language, including XML processing, a much more complete Object model, and repair of an existing memory leak. So what is the problem? The developers of PHP, for reasons not yet entirely clear, discarded the tradition of "backward compatibility", also known as "BC". In software development, BC means that programs written in an earlier version of the language will still run under the improved version. In the world of commercial software, BC is, for all practical purposes, a requirement. Imagine buying a new version of Microsoft Word, and being told that, "by the way, none of your pre-existing Word documents will open in this version." Oops! Well, the PHP problem is not really that bad. Most programs written in PHP 4 will still run. The crical changes show up in how objects are defined, and how variables and objects are passed to functions. The problem is not installing it, or modifying a handfull of short scripts, but rather recompiling the language on a hosting server, then discovering that several copies of a major open source application, and 35 smaller programs, are crashing. Late at night. Oops again. For a SysAdmin, this is a day from hell! That's why people are not changing over. PHP 5 is essentially a completely new language, with similarities to PHP 4. In fairness to the developers, it may have been necessary, and unavoidable, to make those changes to the internals. Their response to complaints was basically, "fix your code". On a small scale, fine, but a hosting server could have dozens, or even hundreds, of changes required, all at once. In many cases, this is an untenable situation, with no easy answer. As websites require more complex functionality, the benefits of version 5 become more important, yet the inherent risk of the upgrade is not lessened. The only responsible course of action, when client websites are involved, is to monitor the situation, and wait.