Electricmonk

Ferry Boender

Programmer, DevOpper, Open Source enthusiast.

Blog

Giving up on PHP

Friday, October 5th, 2007

I have given up on PHP. I will still need to use it at my job, but in private I refuse to even touch it anymore.

Lately, I’ve been busy creating a framework, or a bunch of libraries actually, which where meant to negate some of PHP’s worst qualities. It had better error reporting (the kind you can’t just ignore), logging, sane naming schemes, better configurability, etc. But at every turn, it felt like PHP was actively trying to fight my efforts at overcoming its obscene shortcomings.

I will not rehash here those shortcomings of PHP, except that it’s a pathetic excuse for a programming language written by a bunch of particularly bad programmers. The same goes for PEAR. They’re simply horrid.

Some time ago I wrote a little web application in Python, and I actually had fun doing it. It felt liberating not having to fight your programming language every step of the way for once. I revelled in the professionalism with which basically everything in and for Python is constructed. It’s invigorating to work with libraries that aren’t written in a fundamentally broken way just so the authors can use every Design Pattern under the sun.

It’s not strange that Ruby (On Rails) has become so popular. Even though Rails is severely limited in its abilities, people will gladly put up with it because of Ruby. Anybody speaking in favour of PHP compared to Python or Ruby simply hasn’t worked with either Ruby or Python, or has never done anything significant in PHP. Or, like me, where so blinded by how much time they’ve invested in PHP, that they couldn’t and didn’t want to admit what a total piece of crap PHP really is.

Thank you, PHP, for finally exposing yourself as the leper you are. Our ways part here, and may I never run into you again. I’m running off with Python, and we’ll live happily ever after.

The text of all posts on this blog, unless specificly mentioned otherwise, are licensed under this license.