The PHP Paradox

Mattias Geniar, Sunday, January 25, 2015 - last modified: Monday, January 26, 2015

I was at PHP Benelux, the annual PHP conference for Belgium, the Netherlands and Luxembourg, and I realized 2 things about PHP that I hadn't really thought of before. I call them the PHParadoxes (or PHP Paradoxes).

The Job Hunt

In most industries, it's the employee that convinces the employer he/she is worthy to work at the company.

In the PHP-world, it's the employer (aka the companies) that needs to convince the employee (aka the developer) that their company is worthy of their time and devotion.

In tech, it's the companies that persuade the developers to work for them. In any other business, it's the other way around.

I didn't actually pay much attention to this thought. But looking back, I spent the entire weekend, with everyone I talked to, mentioning that we are looking for PHP developers. What a cool place it is to work at. How we have remote workers. How we have nerf-gun wars and stress-ball battles. How we use Neo4j as our graph database. How we have really smart developers in our team.

But in many other places, it's vica versa. It's the developer that claims their knowledge on frameworks, design patterns, multiple languages, ...

Not in PHP. In PHP land, the companies put in way more efforts than the PHP developers to get them on board.

Why isn't every industry like this? It's not just the shortage on PHP developers. Most of the tech industry works like this.

But the health sector has a shortage of nurses and general staff, do you see them being this actively recruited? I don't. What makes the tech sector so different?

You Know Nothing, John Snow

The closing keynote was brought by @SaraMG, mostly known for her hard work at HHVM and PHP core. She was going over the new tools in the pipeline for PHP and what the PHP7 landscape could, theoretically, be. It mostly covered features of Hack, that could make their way into PHP core.

And then she mentioned static code analysis "on the fly".

php_hack_static_analysis

As soon as the file you're working on is saved, it's analysed and type errors (wrong casts, character conversions, ...) could be shown. I loved this. The room loved this.

I loved it, right up until the point my colleague next to me, with no PHP background, said:

I don't get all this excitement ... this has been in Visual Basic for years, and it wasn't even in PHP yet?

And he was right.

I'm working mostly in PHP and it has blinded me. My small efforts into Ruby and side languages like JavaScript don't really count. PHP has been my dominant language.

But if I look at other languages, mostly languages away from the web, we can see an entire ecosystem of IDE's, debug tools, compilers, standard libraries, ... that help those languages. Think Visual Basic, C#, Java, .NET, ... They all have tools that PHP, even after all these years, doesn't have. And I don't mean just IDE's.

There are no complaints from PHP developers. I don't think anyone feels they're missing something. But maybe that's just because we don't know any better?

Either way, it made me think about other languages. About other development ecosystems that we can learn from, as the PHP community. I'd like to give a few other languages a try this year and see if some of those good bits can be ported back to PHP.

For many, PHP is the entry language into becoming a developer. Don't let it be the exit.



Hi! My name is Mattias Geniar. I'm a Support Manager at Nucleus Hosting in Belgium, a general web geek & public speaker. Currently working on DNS Spy & Oh Dear!. Follow me on Twitter as @mattiasgeniar.

Share this post

Did you like this post? Will you help me share it on social media? Thanks!

Comments

Code Review Tuesday, January 27, 2015 at 13:19 - Reply

Hope the conference was good Mattias! Hoping to get to a few this year myself. Chris :)


    Vinicius Menezes Tuesday, January 27, 2015 at 15:27 - Reply

    Haha.

    I can see you sense what I’m struggling with, I’m making the move from C# to PHP (5.3, unfortunantly).

    So far I can tell that PHP is by far the most flexible language I’ve used. It can be the worst (totally procedural, one system in one big file) and the best at the same time (Symfony2 + Doctrine2 with a full RESTfull and modern web stack).

    The only problem I see is that creating a well structured system is enormous pain. The pieces and framework are out there but fragmented and not so well documented. Most tutorials seem a bit outdated (1+ years), very few places demonstrate and review good practices and it seems to me that the new development is too slow to reach the masses (maybe because of compatibility issues or maybe because of the user base is so big and people tend to stay at their confort zone).

    Thanks for the post!


      Mattias Geniar Tuesday, January 27, 2015 at 16:02 - Reply

      Thanks for the feedback!

      Most tutorials seem a bit outdated (1+ years) …

      I think you just summed up PHP perfectly: a tutorial that’s 1 year old is considered “outdated” in the PHP world. That just shows how fast PHP is moving (in a good way) and evolving to a more established and mature language.


        Balazs Nadasdi Thursday, January 29, 2015 at 00:28 - Reply

        Yes, it shows how fast PHP is growing. A few years ago I moved to other languages because I felt PHP is not pointing anywhere and nobody cares about the development. Now I feel the dynamics and I feel the speed of growth of PHP. I hope one day we reach a state where another languages can learn from us :) Now we can learn from them and hopefully we will do it.


        Tony, London Sunday, February 1, 2015 at 17:19 - Reply

        I’m quite new to PHP, and I’m struggling with just how much (even recently-) outdated material there is out there. Some of the most-recommended *books* still have OO sections based on PHP4 constructors.

        I’d love to hear where people think the best places to go for up-to-date tutorials and learning materials/books are.


Ramiro Varandas Jr Wednesday, January 28, 2015 at 12:48 - Reply

Nice post!

This will be really nice to have, specially if the PHP core incorporate (in the future) such features.

About the working places and jobs, our industry sometimes push people to the edge and with technology moving so fast, it’s really hard to keep a focus.

I’ve been working with PHP for more than 10 years and I think that it’s just keep getting better, but it took some time to evolve (things got stalled for a while). In my current job I got out of my confort zone – working now with Ruby on Rails – and it’s not bad. Although I now miss the IDE features and code complete. =)


Bhumi Wednesday, February 4, 2015 at 10:37 - Reply

Its a good place for the beginners to learn

Thanks!!


Nitpicker Thursday, February 12, 2015 at 04:49 - Reply

Excuse Me, but .NET is not a language.


Igor Santos Thursday, February 12, 2015 at 20:32 - Reply

I’d say this post is impressive… Impressive on how lost it seems.

The so-called PHP paradox is said by yourself later as being a tech industry standard. So why tag it as PHP stuff?
I’m not from the medical market and thus I cannot say how they’re hired… But I guess you’re not as well? If you have any info on that, quote it instead of making random assumptions ;)

And it’s quite obvious why we never had static analysis: simply because PHP was never thought as having static typing. That has always been one of the PHP most basic characteristics. Duh.

No idea how this article got in PHP Weekly. I’ve seen better days in that newsletter…


Vinicius Ianni Saturday, March 28, 2015 at 03:52 - Reply

Reading your article, the part about the question of how recruit programmers, made me think that you live in a parallel world, with companies having to prove good enough for the programmer to work on them.
Here, it is the opposite, the developer must meet requirements that are often unrealistic, or have knowledge of things that are never used.

The fact that php be the gateway to many programmers, and in many cases be the only language they know, because they are already employed by some company, is good on one hand, but it can not serve as a reason to stay in the zone of comfort.

I learned to program with the clipper, then basic, Delphi, ASP, and PHP, and although not yet consider myself good enough in php (I program in it 3 years only), I am studying python now and also go.
Before it was the simple desire to learn more, but now, besides this will (that never ends), also has the need to have a broader view on the various possible solutions to a problem can receive, and also what the most efficient and appropriate within a certain context.

Met php version 3 (and something) and at that time preferred to devote myself to asp as a matter of market, and I could see how much php evolved to the current version (i’ve installed 5.6 a few weeks ago) and how much php 7 can be even better if much of what is currently considering is delivered in its release.

It is true that the comparison of php with other languages, there is a lot things missing, but just looking to php, has a whole ecosystem in developing, how was in other languages, and I personally think its very good it just be forming or consolidating now, it has much in it is being used (or how came to be used) now that there are a few years ago was almost unimaginable and thanks to that, he has this dynamic we know.

Dynamics that this may not occur at the same rate if there were a whole formed and consolidated ecosystem, since often the same ecosystem (through the major suppliers of a solution) delays the evolution of language, or hinder in any way (even if unintentional ) changes in uses and applications

I do not know if I made myself clear.
Anyway, congratulations for the article !!


Leave a Reply

Your email address will not be published. Required fields are marked *

Inbound links