| > It's one of the biggest reasons why ... One person having limited experience with professional PHP development doesn't make it the overall state of PHP development. The majority of PHP development I've see use these community frameworks like Zend and Symfony. They also use a lot of other well established tools. Things like CodeCoverage and PHPUnit, xdebug, and countless other solid, well written tools. I'm sorry, but when people refer to PHP development and relate to WordPress or Drupal, I can't help but shake my head. If that's your idea of professional level PHP, I'd hate to see what you think professional level code in your language looks like. The overall state of PHP development is doing well. We have a lot of professionals writing solid code. Yes, we have a lot of people that flock to WordPress and Drupal, or pick up CI and think they are following best practices in PHP. Many move off to a framework in another language, thankful to get away from PHP and the horrible code it forced them to write. |
The problem is less the language, which is slippery and broken in interesting and different ways from version to version but generally not in ways that are real killers. The real problem is that those people that you say aren't professional developers (and they're not!) and are considered important use cases. This is a language where the core developers actually care about people who splat HTML in their PHP and vice versa. They're the people who don't even know about mysql_real_escape_string (LOL), let alone PDO or doctrine-dbal. And if those guys are just hanging on, great, more power to them, but the core PHP team actually cares about the use case for these people, while for the most part, they really don't seem to care about the use case for people who want to Do It Right. The distaste from guys like Rasmus toward the various framework projects is well-known and I kinda think it has an impact on the language itself.
This is I've seen as commonplace PHP development:
-Misuse of Mediawiki as a corporate intranet, using and extending scary plugins like template parser functions.
-Autogenerated CakePHP monstrosities that barely function and doesn't if you have to make significant changes.
-Home-rolled extensions to Drupal for that one little thing that SomeCo's website really just had to have. Ditto Wordpress, ditto Joomla.
Don't get me wrong: it is entirely possible to write good PHP. I'd say, with a decent bit of conviction, that the possibility of doing so goes down sublinearly with the amount of code/feature-points/other-measure-of-size and goes down superlinearly with the number of other people touching your code. But it's totally possible to do so. I wouldn't have used it for most of a decade if it wasn't. But I am entirely and completely convinced it is the sad minority, with the crazy majority largely catered to by the PHP development team, and it's a major reason why I've gone on to saner pastures.