The PHP Development Process: Critique and Reply
Join the DZone community and get the full member experience.Join For Free
Back in August, in a thoughtful and much-discussed critique, Court Ewing thundered: 'How PHP is Broken and How It Can Be Fixed'.
Not the language -- the development process. He clarified his objection from the start:
All things considered, I like PHP, and I think it is the best option for developing most of the applications that we see on the web today...The serious problems — the ones that actually have long-term consequences, stem from the development process.
Court was responding immediately to a particular bug in PHP 5.3.7 -- a bug that was caught just before release, but didn't stop the release. More broadly, Court objects to PHP's willingness to release after failing a large number of unit tests:
What on earth is the point of writing unit tests when you consider it OK that some of the tests fail? The acceptance of these failures is perhaps the most backward-thinking decision that I have ever seen the PHP dev team make.
Most of the original article's commenters objected strongly to the article's negative tone, but agreed with the substantive criticisms, particularly on the question of releasing despite failed unit tests.
Recently Court posted a follow-up, detailing some more positive suggestions for improving PHP development. His new post explains:
I started out writing the article with the serious intention of making not only an honest critique but also providing some practical feedback for how the process could be improved. I feel my critique was completely honest, but I failed spectacularly in my second goal, and any merit that the article had was overshadowed by its negative tone.
Basically his positive suggestions are:
- Define a test coverage goal above 80%
- All current automated tests should run successfully.
Great in theory, but a lot of work in practice. But Court understands this, and adds that, even if development doesn't proceed perfectly, developers will be much happier of the PHP project managers communicate exactly what they're doing, and exactly how PHP development is progressing -- all much more openly. Specifically he proposes an official development blog (true, that would be cool).
So: better testing, and better communication. Who could object to that?
But is it practical, given the fact that PHP is not being developed commercially and is simultaneously so incredibly widespread?
Opinions expressed by DZone contributors are their own.