I often get asked by potential employees and clients, why we do PHP and mostly PHP only. A valid question, of course and my first answer usually is (besides the “historical reasons” one), that nowadays all those server side (scripting) languages are mainly the glue layer between the front-end (the browser part) and the back-end (your storage and “database” solution) and not the one and only defining factor if your project will be a success. Or not.
Python, Ruby, PHP, they all have their merits and disadvantages, but could all do the job equally well for our daily business. The important deciding factors happen in other areas nowadays.
But, why don’t we use a “cooler” and “cleaner” language then, if it doesn’t matter?
For one, as said, historical reasons. We invested a lot in PHP, our whole company has deep knowledge in PHP, we know what PHP can do and what it can’t. We attend a lot of conferences, know people who can help and we can even influence where PHP is heading to (to some extend, of course). And if there’s something missing or broken, we can try to fix it ourselves.
Then all our code is of course in PHP and reuse is highly important to us. There’s still code from the early Flux CMS days in some of our latest projects. Not because we’re too lazy to re-factor our code (we do that all the time), but just because it works, is tested and proven to work. We can profit from the work we did years ago and don’t have to start from scratch.
“But PHP isn’t very innovative lately” you may say. While that’s true somehow for PHP itself and there is certainly some lack of roadmap and governance there, it’s certainly not true what’s currently happening in the so called “next generation framework” space. With Symfony 2, Flow 3, Lithium and certainly many others, there’s a lot of innovation going on. I’m sure those will change the way we write well developed PHP projects. The people in those projects also talk together and try to make reusing components between them easier. No more “this is my framework island” stories. We live in a very exciting time here.
So while you may think that PHP is stalling, it maybe just matured enough to enable such great projects as mentioned above. Innovation in the PHP as a language space isn’t badly needed anymore, the magic happens in the frameworks on top of it (ruby and rails have the same relationship, I guess).
But nevertheless, PHP isn’t doing a full stop. PHP 5.3 brought namespaces and closures. PHP/Next (whatever the version number will be) will for example bring traits and even more speed and memory improvements. Stuff the frameworks can really make use of.
One last thing for us, why we stick to one language only, is that it was our strategic decision to concentrate us on as few technologies as possible, but to be as good as possible in them. Of course, we still constantly reevaluate new technologies and introduce them when they fit (we even have a written process for that, called “techmatrix” :))
This is for example why we use only Symfony 2 for all our new projects. You need very good reasons for using another framework. And as Symfony 2 has a similar mindset as our own “old” framework Okapi, the switch isn’t too difficult (and we can reuse code). I ported liip.to from Okapi to Symfony 2 in a few hours (without knowing Symfony 2 very well) and could reuse lots of code.
Yes, PHP is just the glue between the front and the back (Jackalope is one prime example for that), but a very good one at that and I’m sure we will be very happy with PHP for the foreseeable future. With all what’s going on in PHP-userland (compared to the PHP core), we currently live in a very exciting time. And I’m really looking forward to see the outcome of that. Don’t write PHP off just now.