There are countless articles, forums, blogs and other sites that try to either defend or blast PHP for use as a professional language for web development. There are a ton of PHP developers than ever before and there are many great options to choose from in terms of your web development technology.
A good example of these debates are like this one — which I will warn that you not read too much into as well!
Considering PHP is dominant due to it’s default installation with Apache on Linux web servers – the most dominant server distro on the web — this debate could greatly be ‘closed’ if these folks look through a magnifying glass for specific scenarios, or if they look to people that have worked on both sides of the debate — such as me.
My web projects across businesses, non-profits & government are currently using both .NET and PHP in various ways. I personally love open source technology especially PHP, MySQL, Apache and I contribute to open source projects like GeoMashup, a plugin for WordPress that among other projects. We also use a bit of Java when there is a simple way to integrate it through say web services and if we have expertise to work with it.
What I’ve learned from other experts and from my own experience over the years that technology is a commodity and the experts that are fluent in different technologies, may feel that they are better at PHP than Perl, or better at PHP then Java etc. So it’s sort of biased to say that one technology is better. Facebook, Yahoo and other big internet businesses are using PHP and are doing it well. PHP is not as ‘fast’ as C/C++, Java, .NET or any compiled language but unless you’re a web developer or software architect, you don’t need compiled languages for your website. You need compiled code for back end stuff a lot of the times and Perl can be compiled.
If you can still continue reading this article and aren’t bored out of your mind (to those reader’s that are not techies), you’ll realize that having these argument’s may be pointless.
When I build web application or website prototypes, I almost immediately go to PHP because of good frameworks or platforms like WordPress, Drupal, Symfony and others because I have an infinite amount of functionality and customization options as well as pretty cheap hosting solutions already where PHP/MySQL cost me a lot less than running say Microsoft SQL Server. I also use my Mac Book Pro most of the time I’m in my lab where I build and deploy many sites from my local XAMPP stack that gives me a web development stack that includes Apache, PHP, MySQL etc. When I need to work on .NET I fire up a virtual machine, Remote Desktop into a Windows box or use Mono – the open source .NET Runtime for Linux. But I can even be disconnected from the web and go to the coffee shop and continue developing.
Focusing on specific needs and the ‘right tool for the job’ are probably more realistic so I think developers and technology folks shouldn’t waste time with the “versus” debate. What matters most is what your folks are good at, documentation, having a pool of resources in case you need to grow (PHP has a lot!), whether or not you plan to integrate something that uses a certain technology, licensing concerns (Windows is not free), operating or hosting costs, scalability, and possibly acquisition concerns if you’re planning to sell your business.
Also I should note that if you have an existing investment then there a lot of CTOs and decision makers in organizations do not want to consider adding PHP into the mix even for certain things, like intranet, collaboration, content management due to their reliance on Microsoft. I just advise those folks to stick with their vendor-lock if they don’t understand open source’s benefits since they already have invested too much say in a pure-Microsoft environment including Exchange, Sharepoint etc.
I look forward to seeing what other great applications, frameworks, solutions and products come out but I can bet that these debates will always be alive. New technology from HTML5, CSS3 and more what will continue to push (new and old) developer’s into learning new technology both to build their resume and continue to scratch their learning itch!