This thread from the PHP-DEV mailing list is a bit old now (Nov 2005), but fascinating none the less. When PHP 5.1 was released, an under-tested new “date” object was introduced late in the release candidate cycle. For those of you not familiar with software development, the release candidate cycle is typically where software development is halted and only bug fixes are committed to the source code before a final release. In this case, an entirely new feature was added in the final release candidate with little notice. Not only that, but the new date object itself had only limited functionality and was intended only as a place holder. This probably wouldn’t have been a problem if the new object had a unique name (or if PHP 5 supported object namespaces), but it used the rather generic name of “date”, meaning that any code that any other developer had written previously that relied on a custom “date” object (in fact the popular PEAR library of PHP code includes it’s own “date” object) would break. And since this was done so late in the release candidate cycle, developers had little or no notice that this was happening. All of this is pinned on one developer who is accused of being arrogant several times (and indeed seems so after reading through his responses).

The thread goes on for quite a while (280 posts to be exact); I’m not even at the end yet and I’ve been reading for well over 20 minutes now. Even Rasmus Lerdorf, the creator of PHP, weighs in a few times. It’s really a fascinating read at the behind-the-scenes happenings of an open-source project.

* This post was originally published on November 21, 2006 at http://www.csb7.com/blogs/whyblogwhy/2006/11/21/fascinating_argument_on_the_php_mailing_