I’ve been fooling around with Python for the last 24 hours and I am beginning to think that PHP users have good reason to consider a switch to Python. I don’t know much about Ruby on Rails but based on conversations with my Insider friend, Ishouvik, I’m pretty sure I could replace the word “Python” with “Ruby” here and what I’m saying would probably still apply.
Right now PHP is going through some pretty major changes. The community is becoming increasingly fragmented and more and more PHP developers are increasingly using the command prompt as their tool of choice for building sites. The days of Dreamweaver are long gone and everything seems to have became more technical. From a technical viewpoint I think that the things which are happening with PHP are probably good, however, from a community perspective I think PHP is currently a disaster zone. If PHP was a country then it would be in a state of civil war.
I have good developer friends who are both excited and optimistic about the state of the PHP community. Personally speaking, however, I’m a pessimist. In spite of well intentioned efforts from the PHP-FIG group, I don’t see any prospect of the PHP community ever agreeing on how things should be done. I also don’t see any prospect of the frameworks uniting nor do I see any prospect of one particular framework becoming the dominant PHP framework. The PHP community is a shambles.
Whether or not you share my pessimism, I’m sure we could all agree that PHP appears to be becoming a more grown up language. New features appear are being added constantly and we are (technically, at least) just about at a point where we can put PHP in the same playing field as more ‘proper’ programming languages like C++, Java and Python… kind of.
However, there’s a problem with PHP and I think it’s difficult to appreciate how huge this problem is unless you’ve ever had to hire developers to give you a helping hand. PHP is a free for all.
That’s right. It’s a free for all. So, what I’m saying here is that you could get 100 PHP developers in a room and not find any two who do things the same way. I have a friend called David who uses his own framework and another developer friend called Derek who uses ZF. I have checked out their code and I can honestly say that they have virtually nothing in common. When you compare what they’re doing it’s like looking at two different languages.
The English language will not allow me to express how much of a massive problem this is. Last year I was ill for about six months and my income levels ground to a halt, completely. I couldn’t outsource because it would mean training someone up. All I could do was stay in bed watching my bank account dwindle lower and lower, month after month, until eventually I had no money at all and they shut my account down (thank you RBS). As a matter of fact, my entire web development business – one of the first commercial web dev ventures in Europe – was wound up last year because of this. It wasn’t lack of sales. It wasn’t because I was doing a poor job. It was because I was ill and I couldn’t outsource! Why couldn’t I outsource? Because I was using PHP!
As far as I can tell, there is a hope that Python doesn’t have this problem.
The entire Python community appears to be pushing in the same direction. They’ve got an abundance of learning resources, they’re not all constantly at each other’s throats, they’re not suffering from an identity crisis and – unlike PHP – they’re not part of some insane rewrite culture.
Every time I see a new feature being announced for a PHP framework they seem to be becoming more and more like the big boys. As a matter of fact, that seems to be the great selling point recently, doesn’t it? So, here’s the question of all questions:
Why spend your time trying to do an impression of the big boys when you can actually be one of the big boys?
If you learn Python then you can be pretty sure that they’re not going to rewrite the whole thing in two weeks and render everything that you’ve built obsolete. Then of course, there’s the features. Python can be used to build mobile apps, games and desktop apps. It’s a proper programming language.
Some PHP users will justify their allegiance to PHP by saying that there’s more of a demand for PHP developers since it’s an overall bigger community. That’s just not true! You see, employers aren’t actually hiring “php developers” these days. They’re hiring WordPress developers, Zend developer, CodeIgniter developers… and fill in the blank with any other PHP faction that you care to think of.
Now if you investigate the amount of jobs searched for with any PHP faction then compare that to the amount of Python jobs then Python totally whoops PHP. HERE IS YOUR PROOF.
So, since Python has better job opportunities, better features, more learning resources, a more harmonious community and a cooler name, then what reasons could there possibly be for sticking to PHP?
The only credible answer that I can think of is that PHP is easier to learn.
Well, perhaps that was the case a few years ago but try learning any of the next generation frameworks and see for yourself how difficult it is! I have attempted to learn one of the new generation PHP frameworks (no name to protect those who aren’t here) and I have attempted to learn Python. In my opinion Python looks easier to learn. Even if I’m wrong about that then at least there’s tonnes of books about Python on Amazon. I can’t say the same for the new PHP frameworks.
Ultimately, I think it all boils down to one this:
If Python is good enough for Google then it’s probably good enough for you.