Donnerstag, 6. November 2014

On the run...

Today I've read yet another Facebook post in a PHP group. T'was something similar to "Look at this _fastest_ PHP framework - EVER. Faster than all others"

So. Define fast. The posted graph contained some bars and some figures. Okay. These were numbers. Only numbers. No description of the test case. No description of the features of the compared frameworks. So how can you compare apples and oranges?

I use PHP - among others, I liked PHP. But hey, to be fair, if you NEED performance and speed in your web application you should not even think of PHP. There are reasons, why big, fast, secure web applications are build with Java, Groovy, .NET and other technologies. Of course there are companies - like Facebook - who managed to run large, high performant systems with PHP. But in fact, compared to other technologies, they have to throw money at the problem and invest a lot into hardware. But on the other hand they really use PHP for what it was designed for - to present something to the user's eyes. You have underlying APIs. They are written in a lot of different languages.

Why can't people "use the right tool for the right job"? Especially in the PHP community I constantly face people who are talking and acting like "All I am able to use is a hammer, so every problem is a nail for me". Sorry guys - learn!

As an employer of Software Developers, Engineers, Architects, ... I tend do name them exactly like this: Software Developers, Engineers, Architects. I will not hire a PHP Developer or a Java Developer. Developers must be willing to learn. They must be flexible. They should not switch technologies every now and then, because then you can't build up experience. But they should never say "I will use technology XYZ until the end of my career". But this happens, all the time. And this is the reason for the Speed Race of frameworks.

Sometimes you should get the head out of the hole you're sitting in and look over the edge. What's the problem with other technologies for you? Why would you rather tend to throw the achievements of modern programming (OOP, Clean Code, Unit testing) away only to stick to your old technology and use new frameworks that may be fast, but don't even provide any modern programming methodologies? All these fast, 'modern' PHP frameworks use static methods - happy inheritance, integration and unit testing!

Instead you should put your efforts into creating Service Oriented Architectures and replace your services with fast running microservices in a second step - created with a technology that meets the business needs of every single service.

You have the choice: Either your software is on the run or you are in a constant haste to not lose your performance in a growing software system.

Keine Kommentare:

Kommentar veröffentlichen