tags:

views:

373

answers:

3

PHP 5 came out back in 2004. PHP 5.2 hit the net in late 2006. Since then, there's been nothing but incremental bug releases and beta releases of PHP 5.3. It's been two and half years since then, and even though PHP 5.3 does contain some new interesting features they're not that revolutionary.

I've used PHP for seven years now, but lately it's been starting to feel like there's something seriously wrong with the community. With the community, I'm not exactly referring to the PHP community at large (we've seen a lot of progress in framework development the last few years), but rather the in comparison small group that does all the actual development. I'm referring to what is usually called by the newsgroup name php.internals.

Personally I've never been an active contributor to this group, but I used to read it rather carefully a while back, and my impression is that there's a lot of internal conflict and friction, which is holding back progress. Many ideas and suggestions are struck down without serious consideration because someone with a lot of "karma" disliked it, and when an agreement is reached it seems to be compromises that nobody really likes. A great example of this is the choice of namespace separator: "\", a choice that everyone seems to dislike.

Is it just me, or is conflict and tension destroying PHP from the inside? Does PHP have the kind of management problem, that I understand is common among open source projects? How do you deal with these kinds of problems?

+9  A: 

I've been programming in PHP for the better part of 10 years now. I've long been annoyed with various limitations of PHP (poor reference handling and complete lack of pointers, as well as a very messy and inconsistent library) I decided to switch to Python and wsgi. The thing that put me over the edge was the new namespaces using backslashes as separators.

Instead of actually trying to improve their product, zend keeps stapling new stuff on to a product that was never meant to be used the way it's being used today.

I'm doing all this knowing that I'm basically throwing away years of work.. But I feel the future of PHP is not very good.. Sucks too, I spent 3 years developing a PHP framework that I use on many websites I've created. Over 70,000 lines of code now obsolete. :(

Ian
Not that I'm saying that you were wrong to change your mind about PHP, but the backslash character pushing you over the edge? Talk about the straw which broke the camel's back... it's just one character, I really don't see the big deal.
nickf
I don't think it's bad enough to cause people to abandon PHP, but the backslash namespace delimiter is a bit wonky. Take this: $func = "foo\bar"; $x = $func(); Does func refer to the bar function in namespace foo or to a function named foo{bell}ar in the global namespace? When you have the ability to call functions through strings like that reusing the character escape char for your delimiter is just wrong. Imagine the same thing in a string you intend to pass to create_function or eval?
jmucchiello
`\b` isn't interpreted as anything inside a string. "foo\bar" evaluates to the literal string `foo\bar` which isn't a valid function name. I don't have access to 5.3 so haven't tested whether it will resolve as the `bar()` function under the `foo` namespace.
DisgruntledGoat
Also, I don't see why PHP needs pointers, it's not that kind of a language.
DisgruntledGoat
Wait, Python is better at these things?
Jeff Davis
+7  A: 

How fast and often do you expect language changes to come along? I guess C++ is completely dead since they haven't updated in 10 years. And Perl 6 is Duke Nukem Forever, right?

Python: 2.0 in 2000, 2.6 in 2008. That's a 12-15 month cycle. PHP: 5.0 in 2004, PHP 5.3 in 2009. That's a 15-18 month cycle. Java: 1.0 in 1996 and 1.6 in 2008. That's a 18-24 month cycle

Language development is HARD. Doing it fast doesn't make it easier.

jmucchiello
I am thinking C#. Launched in 2000, in 2009 we have 4.0. That's a new revolution every 2 years. I might be 2 cycles behind and going crazy trying to learn all the new stuff but at least I am in a cool team. Yaay!
Cyril Gupta
This is a good point. I would rather have them make occasional good releases than just lots of them.
Jeff Davis
+3  A: 

I think it's hight time that someone forks PHP and creates a PHP-Lite version or so. Every long running open source project reaches that stage. Look at Netscape, it got bloated and dumped untill someone appeared and created a lite version FireFox. Same is happening with MySQL. It would have been great if someone did that to PHP too, just to save it.

CDR
Only real issue would be the function list. If you reduce the function list (and fix the calling parameters so they make sense) you end up with incompatibilities. Every incompatibility is a barrier to entry making your PHP-Lite less inviting. And you have to decide what makes it Lite. Do you return to PHP's procedural history or add more OOP (strings and Arrays could be oop'd)? Do you add UTF support to the base? Too many variables.
jmucchiello
It would still be easier transitioning to "PHP-Lite" (bad name) than to a completely different language like Python (whose syntax I personally dislike, btw).
Bart van Heukelom