I have a confession to make. PHP is not my strongest language. In fact, i have only done a couple of commercial projects in it and a few personal projects, but nothing at a massive scale for me to adequately judge it accordingly. So since this is biased(hell, everything i write is obviously biased), I’ll be gentle.
PHP essentially was a scripting language and was never meant to be one of most used technologies in regards to web applications. Ofcourse when i refer to web applications in this context, i am referring to small or moderately large web applications. In fact, wordpress(this thing you’re reading off…that’s right look beyond my words) itself is a fine example of a quasi-medium application(yeah i made that scale up).
Even Rasmus himself has said so. And so it was not designed to scale massively and is not fit for a lot of applications out there. It is for this exact reason that i absolutely hate it. I hate it. I hate it. And yes, i so hate it.
But why, you ask?
Well, it is because i have seen several so-called programmers pick up this fine scripting language and shove it into every context possible. And just because it is a scripting language, it let loose some of the strict programming principles such as variable declaration and proper application design. And this crappy coding style did fit the so-called programmers crappy coding style. So they brought that with them to other languages. And guess who was stuck cleaning up their code.
I completely hate this coding style for the simple fact that the application will no longer be maintainable and especially as the application ages and the wizard who wrote it is long gone and is now sitting on a beach somewhere drinking mojitos or rotting away in a basement somewhere chained to the wall depending on how sick your mind is. And yes, my mind is pretty damn sick.
What these idiots don’t realize is that since this is a scripting language, it is not fit for everything. But if you really have to use it, then you can use it in such a way that allows for constant maintenance and proper coding style and principles. Ever heard of design patterns….you idiots.
Who so much rage?
Well, i have seen several applications that are only good for display at WTF. And being the nosy fellow that i am, i usually end up maintaining them since no one else can.(or willing) My friend tells me that i bring out the worst in people….i don’t know…do i?
So really, my beef with php is not its technical merits but it is an inherent anger that has grown due to the people who use it this way. Sure, you can find a lot of code like that using any language…but php seems to make these things much easier simply due to the fact that it was meant for uses when you don’t want or need to architect an entire application to display a few products from a database for example.
Version 6(which is about a year away) seems to be progressing nicely and i will definitely change my mind when i decide to sit down and forget all my prejudices against it. Sure, there are a lot of things that i don’t like about it. Such as function names are not case-sensitive while variable names are. This drives me crazy because its one more thing for me to remember. But i do understand that most of these issues(which look like mistakes to me) stem from somewhere else and usually have a very good reason.
One BIG PLUS though is that the entry to this technology( i mean the whole LAMP stack for example) is quite easy. You just need apache with the php module turned on. No deployment, no descriptors or any of that crap…just write your code and throw it into you root….simple and easy just how deployment should be.
As you can see, most of this critique is not technical in nature because i don’t have a lot of personal experience with it. If you are after that information, you can read them somewhere else…i have, and i don’t want to repeat what other people said…
So in summary, i might use php at the backend if i don’t find anything else. Php is an excellent scripting language and this what it should be used for…otherwise…please…please use a proper architecture…because if you don’t, i am sure that fate will see that i end up maintaining it.