The PHP Elephant stampede

Warning: This blogpost has been posted over two years ago. That is a long time in development-world! The story here may not be relevant, complete or secure. Code might not be complete or obsoleted, and even my current vision might have (completely) changed on the subject. So please do read further, but use it with caution.
Posted on 03 Jun 2015
Tagged with: [ php ]  [ elephpants

Do you have a toy PHP elephant? A blue one, or an exotic other color, maybe even a jumbo version? Maybe even more than one? Good, put it or them down on the floor, step away from it for a about 5 meters or so, and look back.

You bought this with your hard owned money. You’ve earned it. It’s yours. But think about this for a while: what if  the literally thousands of dollars we as a community spent on stuffed animals, what if we would spend that same amount of money on PHP itself?

It might be a very black and white statement, but think about it. Really think about it. I’m happy to see the enthusiasm that a PHP community has, and having an elephpant mascot as a result. It’s fun, it’s quirky. I get it. Maybe I would be even tempted to buy once for my children myself! But what i don’t get: having a gazillion different types, different models, and this childish “bring your elephant to any place and make lots of pictures of it” kind of behaviour. We tend to buy every available version without hesitation, and even donate a ton of money on kickstarter projects for a new and shinier one!  But that is all probably me getting too old for those kind of things I guess. Sure, some of those profits will be donated back to PHP causes, but that’s just a tiny fraction. A very tiny fraction.

Step back outside the community, and take a look: You’ll see a community / language that is seen in the outside world as a childish, incoherent, not-even-worth-the-bytes-it’s-written-in language (even though that is definitely not the case, mostly), is almost literally fighting over each other backs to pay an insane amount of money for “yet another pluche toy”. “Sure, we might not be the”best” language and developers, but our enthusiasm for elephants make up for it!” seems to be our motto. But what if we would divert all that energy away from elephants, and towards actually making PHP better? We would blow every language and community out of the water in a matter of months!

But I know, I know! You’re not a developer that can actually contribute. Sure, maybe write a blogpost (note: that’s contributing), maybe open sourcing some stupid piece of code that somebody might actually find valuable on github (that’s contributing too), maybe fixing that annoying typo you found in the documentation of a package you use (protip: you’re still contributing). But even if you can’t find ANY way (which is ridiculously hard though), you can always support monetary. But I know, I know! You are already supporting causes. Great! I really mean it. But you are a small minority. Very small unfortunately.

And sure, we just cannot all contribute to the actual PHP core, creating PHP7, trying to come up with a JIT compiled PHP version, or create the next tool a la composer etc. For those things we need other people, people who know what these kinds of things imply, and people who volunteer their free time in order to do this.

Let’s pretend we could get our money back from our elephant. Say, 20 or 25 dollar. Maybe even 75 for the larger ones. And let’s pretend we would donate this money directly to our open source developers? I’m not saying, “let’s make them part of the 1%, and let’s pay for their champagne-filled swimming pool in which they can work from”. I’m saying: “let’s say thanks to them by donating a small part of the money we own ourself by using their hard work”. Would it be awesome to have (more) core contributors to take a day or two from work (but still get paid by “us”) in order to speed up PHP development, add new features, even add those features that otherwise would be tabled because of the lack of time?  Or have people like Jordi and Nils doing even more awesome stuff with composer, because “we” as a community support a few cents to them to do so? Or what about all those contributors from frameworks and tools you use daily, that do not have to make the decision between fixing stuff or getting paid.

I’m not suggesting that once we got rid of the elephant, PHP will instantly be the most awesome language you can imagine, but I do suggest, that less focus on less important features might bring us back on topic as a community as a whole. And this will help us. And a lot more than elephants ever can or could. And once we are at that level, I guess it would be a great time to sell elephants.

Note that open source is not about using free software from others. In fact, it’s quite the opposite. It’s about sharing: code, time, effort so everybody can and will benefit from it. And don’t get fooled by the ridiculously small number of people is that work on all the open source tools you use on a daily basis. And note that without them, you probably don’t have a cozy well-paid job as you have now. Support them, and you are directly supporting yourself in the process. Maybe this would be something to think about when you are thinking about buying your next elephant?

Oh, and those existing elephants you already have: instead of setting on your desk, why don’t you give them to your children, your next door kids, or people who cannot afford any toys for their kids, (even in your country, there are lots!)? Now THAT’S contributing!

There are lot of good causes that can be supported in the PHP landscape. I’ve added four, as those were the ones that I’ve had open tabs on in my browser. There are more, many more. Pick up the projects you like and contribute in either way.

3v4l.org

Post a snippet, and it will run on a massive number of PHP versions, including the latest php7 and hhvm. According to the site, it takes about 100 mBTC to keep the site running for a month, its Gratipay account tells us he has received 3.01 dollar.

XDebug

Derick Rethans most likely singlehandedly changed the way we can debug our PHP scripts. Instead of var-dumps and die() statements, we have a powerful step-debugger. If you don’t use it already, you should. And besides his work on MongoDB, speaking at conferences, mapping postboxes in London, he manages to find some to spend on xdebug. Sent him a gift card!

PHPUnit

The main unit test suite for all your PHP applications. Sebastian Bergmann has created a sweet system that allows you to (easily) test your code before you break it. And with help of the German/English(Dutch) tag team of Sebastian’s PHPUnit and Derick’s XDebug, it will gives you a complete insight in the coverage of your PHP code with tests.

Composer

If you haven’t heard about composer, you probably have lived under a rock the last few years. It singlehandedly created a package dependency infrastructure that allows you to easily use and re-use packages from others. Together with some inter-operability changes that the PHP community adapts, you have a large collection of packages that are easily deployable into your own code.