Peter puts forward two reasons for this:
1. Java has become easier
2. New infrastructure software has hidden costs
I agree, with both points, especially #2. I am personally aware of two large customer where the IT operations team refused to put a PHP app into production because of administration, management, security and governance issues. The application development team had to rewrite the app in Java.
Two other reasons I’d add to Peter’s list:
3] Developer & IT Operations skills
4] IT Vendor backing
I’m constantly surprised with the number of developers I’ve spoken to who say “I use Java for everything because that’s what I know best and just haven’t had a chance to pick up PHP”. Learning PHP is a weekend chore at best. But, getting as proficient with PHP as you are with Java may not be worth the effort, especially when you’re already overstretched trying to meet deadlines. Also, let’s not forget the skills required to secure, administer, manage and monitor PHP apps. I suspect this is why the IT operations team said no to PHP in the customer examples above.
Major IT vendors have invested in Java and .NET technology and marketplace education. Corporate IT decision makers know about Java and .NET, so when a developer comes in talking about xyz where xyz != (Java | .NET), it’s going to be a difficult discussion.
But all is not lost for PHP in the enterprise.
I believe that PHP’s growth in the enterprise hinges on its acceptance by IT operations teams, which is related to issues #2 and #3 above. Two products that address this gap, (and I’m sure there are others):
Zend Platform helps administer, manage and monitor PHP applications, three very important functions inside an enterprise IT department. A problem that some enterprise customers have with this approach is that you now needed two sets of skills or people. One that would play the IT operations role for your enterprise PHP apps and one for your Java apps (remember we were speaking with Java customers, so insert .NET for Java as appropriate).
IBM WebSphere Extended Deployment Operations Optimization Controller, (wow 62 characters), amongst *many* other capabilities, addresses the above issue with PHP in the enterprise (See Note below). It allows IT operations to manage PHP resources in the same way they manage Java resources.
I mention WebSphere Extended Deployment because it’s a great example of OSS and traditional software being used together to deliver customer value.
We may look back and realize that traditional products like WebSphere Extended Deployments turned out to be the impetus for broader adoption of PHP in the enterprise.
NOTE: Please read more about WebSphere Extended Deployment here. I wouldn’t want you thinking that it’s mainly for PHP stuff. WebSphere Extended Deployment is about quality of service optimizations to your IT investments. Also, I’ve just discussed one feature (PHP support) of one component (Operations Optimization Controller) of WebSphere Extended Deployment. The other two components, Data Grid and Compute Grid, are incredibly powerful and have customers really excited. If you think about Grid Computing, Virtualization, or Extreme Transaction Processing, think WebSphere Extended Deployment.