Sep 1, 2013

Random thoughts on the future of PHP

I just re-read this post by Phil Sturgeon, and it spurred some random thoughts. Without much editing, I'm just going to put these thoughts in writing and post them.

As Phil touched on, part of the reason PHP doesn't move along in some of the bigger and more complicated areas, is missing incentive - all of the work on PHP is being done by volunteers and contributors, and their work frequently gets voted out and thrown in the trash because of the voting process; a process that is certainly both good and bad, I'm not here to pass sentence on that approach, it just makes me think.

So here goes, in no particular order:

1. This is not how most other successful languages are built. There is usually a committee or board of some kind, that creates a specification and a set of tests the language must pass, and a foundation or organization behind the language, funding a team of developers/engineers that have real goals and deadlines.

2. Creating a programming language is not a hard as it used to be. There are more engineers who are interested and capable of building languages - new languages pop up everywhere, all the time, there are better tools, and there are more languages and frameworks better suited for creating new languages than ever before.

3. Funding for software (and hardware and many other) projects now often comes from a new social paradigm, crowd sourcing. Finding funding for something as popular as PHP really ought to be easier than funding pretty much any other software project I can think of.

4. The eternal roadblock of backwards compatibility as always stands in the way of many types of progress - but a new version of a PHP doesn't even have to be backwards compatible. Since building compilers and languages is now much easier, there is no reason we can't provide a transpiler to facilitate porting entire projects from old PHP to new PHP.

5. Is the existing PHP codebase even worth building on? It doesn't perform well, it doesn't always work well, and the codebase itself is a nightmare that few developers are willing to even dip into - even if you paid them, probably. In my opinion, PHP needs a rewrite, probably in a different language, to make the PHP codebase itself more attractive to new developers and encourage sustained growth by more than a small closed circle of grumpy developers.

6. PHP code isn't interoperable with anything else in the industry, and as such remains at odds with the Java and .NET/Mono community - a modern version of PHP should be built on an existing, secure, scalable, cross-platform VM so that the team can focus on maintaining the high-level aspects of the language itself (the stuff that helps us be productive) and avoid getting distracted by platform specifics, low-level security issues and other technicalities. Established VM eco-systems are rich with the kind of libraries needed for core functionality.

The stage is set - the conditions for a new PHP are better than even, so why isn't this happening?

I love PHP, but these past 5-6 years I feel increasingly that it's going nowhere - despite some very nice additions and great improvements, it's all still built on a dated and shaky foundation, and it all exists in a vacuum, a foreign land in which very few developers can find their way around.

I think that's the real reason PHP isn't going in the direction I'd like to see it go.

I guess there's a chance flames are coming out of your eyeballs as you're reading this, and if so, try to take it with a grain of salt - these are just "off the top of my head" things that came to mind after reading Phil's post again, unedited.

Food for thought, that's all.



Follow-up:

Catching up on a couple of months of blog posts tonight, I see a lot of people have been speculating about the future of PHP lately - here are two other related posts I came across: