Occasionally, and probably less often than I should, I read blogs and newsletters about programming and frameworks. Usually instead of finding useful information about the latest developments I’m finding flame wars on languages. They most often target PHP, though sometimes come from Java and .NET guys and target Ruby, Python and Perl.
“PHP isn’t even a programming language, it doesn’t have XYZ!!!”
You’re right, and not only that – it doesn’t even have ABC. But surprisingly it just works fine without it.
When you read these flame wars on forums and blogs you may start thinking that everyone out there works for NASA or Merrill Lynch (oops), does super advanced programming that your life depends on.
The truth is that at least 90% of the web software out there doesn’t need most of the advanced features that even languages like Ruby have, and that doesn’t make the software less valuable. A simple blogging platform like WordPress, written in PHP and working with MySQL has done a lot more for the internet and for the people than some advanced banking software has. A cheap looking personal network called Facebook (surprisingly, written in PHP again) does a lot more connecting people all over the world than those forum heroes who bash you for not using namespaces.
I’m not writing this to undervalue the work of the “real programmers”, neither to say that PHP is any better than Ruby or Python, or that Ruby is better than Java or .NET. PHP is indeed not a very well designed language and lacks many cool things that the others have.
What the simple languages like PHP and Perl have however is the ability to start quickly, throw few lines and have something working and in fact and finally to get the work done well enough.
Learning a more advanced language is definitely a plus, but switching your development to it may not be worth it. Your work matters because you create valuable software that people use, not because you know Java better than everyone else in your city. If PHP helps you to produce more good software in short time and cost effectively, then it is all you need to be successful. (And yes, to make more money).
P.S. This advice like everything in this blog is more attended to independent professionals and not so much for people who are looking for a job – to the latter it may make some sense to switch to more advanced language and get a better salary.