Most PHP Frameworks are not for programmers

Published on 2013-04-17.

A small article about PHP frameworks, design patterns, and the art of programming with a passion.

Some programmers make programs in order to cash in money. Other programmers make programs and enjoy the work as if it was an art form. They take pleasure and joy in the work they do, and they would do it, and keep doing it, even if they don't make any money on it.

Most PHP frameworks take the joy out of the work. On some frameworks, with a click of a button, you have a running application ready to be extended (within the boundaries of the framework of course). This is not programming.

It makes sense to reuse code that already does what a programmer wants to achieve, and there is no point in building the same application from scratch every single time, but in today's world of PHP programming there has arisen a "trend" in which many programmers use frameworks for all their productions, rather than small discrete libraries, not only that, many people strongly criticize a programmer for wanting to develop his own product from scratch with arguments like, "you're re-inventing the wheel!"

Seriously!?

The analogy of a wheel is flawed and it's like saying to a car producer not to make a new car because the car already exists!

One framework is overly complicated and takes even longer to understand than the underlying programming language, another enforces a very specific workflow upon you which gives very little room for freedom, yet another is too simplistic and lacking even basic functionality.

Now, let's throw in the modern, very misunderstood and very misused, notion that every problem fits a particular pattern. Rather than thinking creatively, developing ideas and skills, enjoying the work, the programmer is now struggling to make his particular problem fit into one of the popular so-called design patterns. If it doesn't fit, he'll have to make it fit!

If we where to extend the misuse of design patterns and frameworks in the world of programming (especially in PHP) to the real world, then we would all be driving the exact same car, living in exactly the same house, and not much would be different except for perhaps the colors on the walls, and if someone would dare to think about doing things differently, he would be scoffed and frowned upon by all "the masters".

In my humble opinion most frameworks and design patterns stand in the way of creativity and independent thinking and they are mostly just adding complexity! You might get a finished product out the door much faster, but you are going to pay a high price in the long run.

Rather than spending time developing a single functionality which performs a specific task, a person can use a particular framework which has a class that achieves the same goal. Yet the framework, having been developed in a frantic attempt to fulfill all the object-oriented design patterns rubbish, now loads 143 classes in order to achieve just the simple goal of printing "Hello world" on the screen. This is so ridiculous!

I believe that the most brilliant ideas in the world originated from people daring to think outside the box and daring to experiment.