The Problem with PHP is PHP Itself
According to IT experts from five years ago PHP wasn't ready for the Enterprise. While Microsoft and Java developers were vaguely familiar with the PHP acronym, IT managers were still in the dark. PHP developers have always had to deal with what PHP couldn't do. PHP couldn't possibly run real business applications. PHP couldn't possibly scale. PHP is simply too hard to maintain. Fast forward to today and we can pretty much discredit all those claims. PHP does scale, it is used by a number of online powerhouses for critical enterprise needs and PHP can be written with an eye towards maintainability. Microsoft, Java and Ruby developers probably want to chime in about how they can do those things better but that's not the point. PHP has matured and established itself as capable platform for enterprise web applications.
Great, so what's the next problem for PHP? From the perspective of this lowly software architect buried beneath the cold and snow of the American Midwest PHP's next real challenge is PHP itself. In the Des Moines metro area (no, that's not an oxymoron) you'd be hard pressed to find another software shop cranking out as much PHP as our organization does. Relatively speaking we are still a small software shop with roughly 30 developers but over half of our active projects are targeted for PHP. I've personally had to demonstrate that the industry's view of what PHP can't do simply wasn't accurate and this wasn't done using wit and charm (though those things can't hurt). No, no, see we had to bust open the IDE and crank out code that proved PHP could do the things we asked of it. Actually this is quite a daunting task because unlike .NET and Java developers I didn't have the benefit of a vendor like, say, Zend stopping by and helping spread the word. By-the-way Zend's lack of presence in the public sector...particularly here in the midwest is still a problem. While I recognize they don't have the resources of a Microsoft or an IBM they can surely afford to do more than nothing. But I digress. So what do I mean when I say PHP's problem is PHP itself?
While I've beaten back PHP-haters who have starred in roles like developers, project managers and CIO's I can't control the marketability of PHP. Despite all the evangelism I do here I only have the ears of but one of a number of software shops in Des Moines metro. Worst yet the Des Moines market is saturated with Java and .NET talent who just don't see PHP as a legitimate career path. So while PHP is no longer bleeding edge technology it is still very much bleeding edge for HR departments. Why is that a problem? One word. Sustainability.
Our shop is making heavy use of virtual server environments. As we made the transition to a Linux-based virtual environment PHP was a perfect fit. Virtualizing Windows for .NET applications, while possible, is cost prohibitive. What about Java? At the time we introduced virtualization our only supported Java platform was IBM's Websphere which is even more costly than .NET. While we could have ported some of our Java applications to something cheaper like JBoss we had existing in-house PHP talent. Now let's complicate things further by noting IBM's Websphere Community Edition boasts an attractive price point and a license that is compatible with virtual server environments.
To state this problem in business terms we now have a strong PHP competency and we are delivering successful projects routinely. The quality of our PHP solutions rivals our best .NET and Java applications with a lower cost of ownership. The Des Moines market has very little in the way of local PHP talent so we often augment our staff with Java contractors who don't last long because they don't feel PHP can help their long term career goals. This results in rapid turnover which leads to continuity issues with some of our projects. Worst yet IBM's Websphere Community Edition provides a Java environment that has a similar price point as PHP and uses a familiar application server. One day soon somebody in a suit is going to ask me if we really need both PHP and Java? And they aren't going to be asking this in the context of the never ending Java vs. PHP religious argument. They will want quantifiable information to base their decision on.
To be painfully clear, let me state my problem in one sentence. Despite PHP's ability to meet an organization's technical needs, how can an organization justify using PHP if the local market has a hard time producing good PHP talent?
Despite the stereotypes many of you undoubtedly have about Iowa's relationship with technology I can't imagine Des Moines' PHP market is that unique. Am I wrong? Assuming not, my question for the PHP community is how can those in PHP markets similar to Des Moines argue in favor of PHP's sustainability? What role should Zend and other PHP vendors including recent adopters like Oracle and IBM play in turning this tide?