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?
I think it’s a chicken / egg situation. When there are none companies asking for good PHP developers, the developers don’t grow the urge to go doing PHP.
PHP has a good learning curve. I think most JAVA people can do PHP within 3 weeks. PHP people can’t do JAVA in 3 weeks (most of them). But JAVA has a steady background of certification and education. Many universities in The Netherlands (where I live) give JAVA education. So, people who hire programmers are on the look out for JAVA programmers because of their background and because it’s a ‘buzz’ word still. You can’t iron that out.
Installing PHP is easier than setting up a complete JAVA environment and all the dependencies. Talking about maintainance, JAVA is a burden. You can’t upgrade that easily with JAVA because of these dependencies. You pull one part of the framework out, the whole thing might collapse. Running the same old versions because you might break it, is not like staying on the edge.
Before PHP, you had Perl (and C CGI before that) as the defacto language on the web. Perl had their modules and could do some OO, but it wasn’t capable of Enterprise stuff either. Now, companies still ask for Perl developers because of their maintainance issues, but also because in the background Perl still does some tricks. In that field Python is growing too. Stuff PHP can do too. You don’t write a shell script in JAVA just for the sake of it. Maintainance again. PHP can do SAPI and CLI pretty easily. You only need 1 programmer who can do both server maintainance and webscripting with PHP.
PHP does OO now and the community is still huge and growing everyday. Advantages of PHP are scalability, ease of use, multiplatform, speed, integration with many things etc. On top of that PHP is interpreted, while you can make your own extensions if needed (done so myself today for the first time).
So, I don’t think PHP’s problem is PHP itself. Many huge websites are running on LAMP (can’t see a J in there sorry). Security flaws are in JAVA also. I think if you want to ‘sell’ PHP, you should ‘show’ PHP. People ‘show’ Ruby nowadays as if it is all we ever wanted. But Ruby doesn’t perform (yet). It doesn’t scale (yet). It doesn’t read either. I can’t stand the syntax. PHP can do Rails (and it does), so why the hype about Rails? It’s not like Rails is cool because of Ruby. Rails is just a way of thinking. Ruby is just a method to get you there.
All in all. PHP has proven itself over and over already. People who got into JAVA are the ones who rather think ‘complex’ than in ‘solutions’. Period.
- Unomi -
This is where User Groups have a perfect opportunity to step up. The problem is that most PHP User Groups were formed with the idea of teaching the language. We have a different challenge now. There are plenty of resources for learning the PHP language on the internet. The PHP.net site alone is easily one of the best structured and easiest to use language references on the internet. As a result, most PHP developers are entirely self-taught, and a huge chunk of them have little formal programming background at all.
There are far fewer resources for learning how to use PHP within a professional corporate environment. Many new PHP programmers are rarely exposed to topics like version control, cache mechanisms, ticketing and bug reporting systems, even communication and diagramming tools. They learn in small, easily controlled environments and most learn to rely upon those small environments. The goal of PHP User Groups should be to teach solid PHP, but also to get the idea across that PHP alone is not enough if you plan to work professionally.
More importantly, User Groups should also serve as the point of communication between programmers and businesses. At DallasPHP, we do everything we can to promote the PHP job market, not just to help our members to find jobs and help companies meet their development needs, but to prove to those companies that aren’t quite convinced of PHP’s viability that there IS a PHP job market. PHP hiring used to be “Do you know anybody? Because I don’t want to wade through unqualified applicants.” As a result, you only found help if you knew somebody who knew somebody. You only found jobs the same way. PHP has to move past that point. If you want a viable job market, hiring can’t be a secret. If nobody knows there’s a viable market, you’ll never attract new people. We post every lead we get. Sometimes that means dozens just in the north Dallas area. You’d never know that by looking in the local want ads.
The part you should be interested in is that cooperation with the job market also serves the group directly – some of this area’s larger PHP employers are enthusiastic DallasPHP participants, making their own current employees available to speak and demonstrate technologies they are most dependent upon. We get to use their professional experience and knowledge to attract and educate members, while they get better educated job applicants and a more direct means of interacting with a larger pool of specifically local PHP talent. Their attendance always raises the level of discussion, and a good complicated discussion generally keeps them challenged and involved.
A good presentation here can easily draw 30 to 60 attendees, most fully employed and many highly skilled. Businesses love that. Recruiters love that. Experienced developers love that. Novice developers love just having the opportunity to hear these conversations and are more than willing to jump in when they’re confident enough. By embracing the entire PHP ecosystem instead of just the first stage of it, we all win.
User Groups have always appealed to novices, that part’s easy. Now, they MUST make themselves appealing to the fully employed. At least appealing enough to get them off their asses and involved after a long, hard day’s work. That’s not easy. Fortunately, most PHP developers, being self-taught, are more than a little obsessive about the topic. Keep them challenged and you’ll keep them in attendance. (Where they can be easily found when needed.)