Why still PHP?

I've seen MeteorJS, Ruby on Rails Django and Java Spring Framework. But I still keep coming back to PHP. Here is why...

Posted by Darwin Biler on January 12, 2016

There is a famous saying:

Life is what happens to you while you're busy making other plans.

Can be directly translated to its counterpart:

PHP is what happens while you are busy learning other languages

The quest for the ultimate programming language is a never ending process. People who want to do businesses doesn't actually gives a fuck if you are running the most hipster language of the year or not. What they do care is if your software does what they need and thats it. While you are busy learning the yet-another-hipster language, PHP-based scripts and tools is continously eating up the whole industry gaining stronger foothold while you keep pondering what is the ultimate language choice.

Business Interest > Personal Interest

In contrary to many thread and forums lead you to believe, programmers doesn't choose the language/frameworks. It is the project managers and CTO who does. This is specially true for corporate environment on which a change in language requires tons of political arguments. It is not true that just because you saw someone posted "Rails 5 is cool" in a Slack chatroom means you can suddenly let the company fund the migration of entire PHP codebase to Rails 5.

Profit - Expenses = Revenue

Rails/Django is great. I'm all to that. But if you are a business man and you laid out the spreadsheet. Manpower costs for hiring Rails developer is way higher than most of Senior PHP developers. The overflowing supply of PHP developers in all levels makes it very easy to bargain salaries in lower price. If I can produce something with less resource and low upfront cost, that is way better moneywise.

PHP allows you to carry a toolbelt instead of a Hammer

What is fascinating on most people who chooses other language other than PHP is they tend to believe that if you choose PHP, one uses PHP on everything. Most of the PHP developers I know (including myself) can code Python/Ruby/JavaScript/Java whenever when we see fit. That is because our mind is not constrained by ecosystem that makes you believe it is the superior one and everything you do should be done with tools that comes with its ecosystem (there is a Gem for everything).

Not every website requires military-grade security

PHP has tons of security issues. But by experience, this can be usually mitigated with strong network/server level security (and tons of sysadmin is very aware of this process). Even so, a 2-3 pages w/o any sort of database backend for publishing few banners requires no high-level security, cases on which Rails will be an overkill.

Technical debt can be easily paid by rewriting the whole app

the problem with Technical debt is, you cant prove it exists unless management could see it themselves in action -- and PHP is great tool to demonstrate that. That seems a very "mean" way to describe how PHP should be used, but in reality seeing a spaghetti codebase makes a very strong case to use other language.

You cant justify a rewrite of an app to whatever preferred language you want if its still working and has no issues! and having a throw-away project using PHP makes a very strong case in able to demonstrate what happens if you let Technical debt was left unchecked.

Realism

Not every user can avail of the latest iPhone model. That is a fact. You can even still see many people using Nokia 3315 today (yes I do). Same can be said for language.

It is a good "niche"

As developers learn things, they tend to abandon PHP when they say learned Java Play, ExpressJS or RoR. That is natural, we learn better things and move to the next level. Ths in effect, causing a brain drain of "expert-level" developers in PHP community, opening a very high demand for expert-level PHP developers.

Migration of competent level devs to other languages + the need for Senior-level PHP developers makes a good combination and opportunity for you to monetize your skills with very minimal resource input.

This scenario also opens a lot of opportunity to make name for yourself. Like developing a library that wasn't written yet. In Rails community, it has very rare chance there is something that wasn't written yet as Ruby Gems.

This might not be the strong case for you to use PHP, but like I've said. It's better you carry a toolbelt (on which a set of tools is available including PHP) instead of carrying a hammer (which makes you think everything is a nail).