
Rambling On [PHP] Internals - chrisacky
http://blog.ircmaxell.com/2013/09/rambling-on-internals.html#comment-form
======
bowlofpetunias
The author is complaining about lack of vision, leadership and regulations.
And most of us can perfectly understand that, except: those are exactly the
things that set PHP apart from most other major open source projects.

It is by far the most anarchic and disorganized major OSS project and yet it
_still thrives_. It still moves forward, it still gets better. Yes, it's
design foundations as a language are not particularly elegant (to put it
mildly), but that's pretty much the only major thing that's wrong with the
resulting product.

According to all known wisdom about how an OSS community should function, PHP
should have imploded and forked a long time ago. It should no longer exist.

And yet, despite this "I quit" rant, PHP has had relatively few major
conflicts. The PHP way is unique, and while it may offend the sensibilities of
people who like a nicely organized and disciplined community ran by a
benevolent dictator or inspiring visionary, dammit, it works.

I strongly suspect that any successful attempt to solve PHP's organizational
"problems" would actually result in killing it stone dead.

We already have Python and Ruby ea. PHP should stay weird.

~~~
pessimizer
Killing PHP dead would be as hard as killing IE6 was.

~~~
aarondf
Much harder, I'm afraid.

------
mappu
I read php-internals every day, and.. this is totally understandable. There's
a lot of opinionated people on that list with totally different visions -
nikic, stas, that one guy Lester who is convinced 5.3 and E_STRICT was the
worst thing in the world... PHP just appeals to too many people to have a
consensus. Possibly the point this was made most clear was when the property
accessors RFC was declined on a hairpin vote despite having a majority (and
the time that switching to an actual AST-based parser was a non-starter).

Your contributions and voice will be missed.

~~~
TazeTSchnitzel
>that one guy Lester who is convinced 5.3 and E_STRICT was the worst thing in
the world

Ahahaha, it's all coming back now. I used to find his emails funny.

I also remember why I unsubscribed from php-internals as well, though...

------
buster
An eyeopener for me was reading parts of the discussion how the new namespace
seperator was chosen:
[http://pastebin.com/2iJP4Qhx](http://pastebin.com/2iJP4Qhx) (from
[https://wiki.php.net/rfc/namespaceseparator](https://wiki.php.net/rfc/namespaceseparator))

If you read that IRC log and truly believe that a multi-million/billion dollar
ecosystem/environment should be ruled by what reads like kids between 12-16
chatting, then go ahead. I won't. Apart from that there is enough rant on PHP
on the internet already ;)

------
ck2
Subscribe to it for awhile and you'll see.

It also turned off the suhosin author to the point where he moved onto other
stuff.

He had some great ideas, now lost (no longer works with PHP > 5.3 )

But Zend shows up and folds back in some great stuff into PHP once in awhile.

Take a look at their now opensourced opcode cache, it's faster than all
others.

~~~
McGlockenshire
> But Zend shows up and folds back in some great stuff into PHP once in
> awhile.

That's kind of the exception instead of the rule, really. Andi and Zeev are
very, very infrequent contributors to php-internals.

They proposed releasing the thing that became opcache after Rasmus finally
convinced everyone how much of a pain in the rear end maintaining APC was.

------
robrenaud
This is super relevant. How to protect your open source project from poisonous
people.

[http://www.slideshare.net/vishnu/how-to-protect-yourhow-
to-p...](http://www.slideshare.net/vishnu/how-to-protect-yourhow-to-protect-
your-open-source-project-from-poisonous-people)

~~~
eksith
That's extremely helpful advice.

The video to those slides :
[https://www.youtube.com/watch?v=ZSFDm3UYkeE](https://www.youtube.com/watch?v=ZSFDm3UYkeE)

~~~
DavidHogue
They also have a few other talks on youtube about similar topics and a book
now:
[http://shop.oreilly.com/product/0636920018025.do](http://shop.oreilly.com/product/0636920018025.do)

------
astrodust
I'd often wondered if the patchwork, self-contradicting, non-standard,
anarchistic nature of PHP was a reflection of the mind-set of the creators.

~~~
yogo
I'll give you that. No clear direction. As I thought about this a little more
in Ruby you have Matz, Python has Guido, Scala has Odersky, C# has Anders
(those are just those that come to mind and I'm not sure of the current
involvement). I can't think of who PHP really has like this. Rasmus maybe, but
I don't think it's the same as the other languages I mentioned--understandably
so due to other projects/engagements.

------
Pxtl
Any large community has these problems. This is the advantage to using forum
engines that allow non-anonymous upvotes/downvotes over a naive mail-list -
people can silently agree and separate the wheat from the chaff, and consensus
becomes far more visible. You can even give the important contributors greater
"weight" to the ups/downs (this is not a democracy, contributors are worth
more).

~~~
jlgreco
All the "forum" software that I have seen (opposed to more "ephemeral
discussion" software like HN/Slashdot/Reddit) provides such a goddamn awful
reading/browsing/discoverability experience that any benefits it may have over
mailing lists are completely lost. Just for starters, mailing lists allow the
discussion to thread (as do sites like HN, Slashdot, and Reddit) and don't
force you to use a shoddy web interface that shows you only a few dozen posts
on a single page. If I have to scroll to the bottom of a page and click a link
that says "513", I am having a bad day.

I have never seen a large open-source project that uses "forums" in a way that
doesn't impose massive overhead. Without fail, forums for open source projects
are dreadful while mailing lists are, with a few notable exceptions, pleasant.
When I am looking for information about a project and discover that all the
project officially has is a forum, my heart sinks; it ranks up there with
finding out the project is still hosted on sourceforge or a
mega/rapidshare/whatever clone.

~~~
shabble
Every time I'm forced to use a forum for something, I wish usenet hadn't
succumbed to spam & binary warez. Many of the clients from 20 years ago have
more (useful) features than modern forums.

It's probably about time to reinvent it again, tunneled over Websockets with a
Flat Responsive html5 Retina-Aware Interhyperface or something.

~~~
jlgreco
Any reinvented Usenet should be client agnostic, otherwise it is just going to
eventually succumb to the same problems that we already have with web forums.

~~~
Pxtl
In which case it will eventually succumb to the problem of RSS - the biggest
client will decide to drop it in favor of moving to a proprietary system.

~~~
jlgreco
_(Well I suppose that is what you get for using a webclient that you are not
paying for....)_

What is the alternative here though? Instead of making it client agnostic,
make it _not_ client agnostic? How does that not make the situation even
worse? Being client agnostic means that it _doesn 't matter_ if one particular
client is discontinued. That is practically the entire point of being client
agnostic...

Any solution that will be viable in the long-term needs to be decentralized
and client agnostic. Otherwise you are not reinventing Usenet, you are just
reinventing web forums poorly.

Edit: Aaaah, I need more sleep.

------
pavs
I recently started learning PHP as my first programming language and I love it
so far. But the amount of negativity and hatred I see towards PHP on the
internet (even among so-called PHP lovers) makes me question my decision of
learning PHP.

My main purpose for learning PHP is for web-development. I have looked into
java code and I felt like I am going to shit pants if I have to learn that.

2 questions.

\- Am I wasting my time with PHP?

\- What are some good alternative for web-development that preferably doesn't
have a steep learning curve?

~~~
wpietri
Whether or not you stick with PHP, you should learn some other languages. At
the very least, it will make you a much better PHP programmer. But maybe
you'll find something you like better.

Ruby, Python, and Node are all reasonable next things to try. Large
communities, lots of resources, and plenty of example code to look at.

~~~
progx
I leave PHP last year. The way PHP moves is not my way anymore. After so many
years of using, it get boring too.

PHP has a problem, the "old stuff" / compatibility, like all older projects
have. They change things, but slowly and sometimes inconseqent. I hope the
will really renew everything with a new version, even if that mean that they
lose many users.

In the last years so many new languages and styles were born, you feel really
old with PHP ;-) ... that does not mean that the others were better.

------
torino_devc
There is pretty much new independent PHP engines nowadays, one of my favorite
is an embedded PHP5 implementation named PH7 written in ANSI C and following
the SQLite3 coding style (very impressive)
[http://ph7.symisc.net](http://ph7.symisc.net)

------
gesman
PHP is addictive.

You can create whole web app in one PHP file from scratch and it will have
everything including API and DB management layer and be secure and fully
functioning.

And it will work on all servers and on all operating systems.

Millions are made by average developers developing themes and plugins for
wordpress.

Hard to beat all that.

#drama is for queens :)

~~~
gngeal
Common Lisp is addictive.

You can create a whole web app in one CL file from scratch and it will have
everything including API and DB management layer and be secure and fully
functioning.

And it will work on all servers and on all operating systems.

Also hard to beat that.

~~~
alanctgardner2
> fully functional

FTFY

~~~
gngeal
CL people are not very tolerant of functional nazis. (Probably because
functional nazis are usually static type system junkies who scoff at macros
and incomplete-impure-but-working solutions to problems which are often
associated with CL.)

------
dkhenry
I think the only hope PHP has of continuing development is if someone big like
Facebook can add some direction to it. Maybe they will but I think last I
checked even they were giving up on using it for much more then a thin veneer
to their back end services.

~~~
McGlockenshire
Even if a large company like Facebook did want to help add direction, they'd
have to do so within the confines of internals and the RFC process.

The prehistoric luddites and trolls on the list would shout down any truly
language-improving proposals in the same way they always do, regardless of
source.

The only way to get rid of those unwanted elements would be a fork, but that
would be unproductive. The remaining thing keeping PHP so popular is how
amazingly ubiquitous it is. A fork wouldn't have that advantage, especially in
comparison to languages and environments that are objectively better anyway.

~~~
protomyth
> The remaining thing keeping PHP so popular is how amazingly ubiquitous it
> is. A fork wouldn't have that advantage, especially in comparison to
> languages and environments that are objectively better anyway.

Initially, I believe you are correct, but I am not sure long term. PHP is easy
for a system admin to install. Other than perl, I am not sure if there is
anything out there that is as easy. I would imagine a fork, if it wants to
survive, would need to be just as easy.

I do wonder why PHP has never really had any competition in the "super easy
for my system admin" category.

~~~
ErikAugust
A lot of things are becoming extremely easy to install though. With the growth
of AWS and cloud-services I'd guess there will be movement away over the next
5 years.

~~~
protomyth
I have not seen anything that comes close (other than CGI scripts) from either
the system admin side or the client code side. I would love to know if other
folks are addressing this. The closest (well, other than Perl) is some of the
tooling surrounding Java deployment.

------
gexla
I think what's important here is that PHP developers shouldn't look past the
curtain. The whole web stack is a house of cards. The state of PHP doesn't
change that. ;)

PHP is powering a huge industry. A lot of money is flowing on PHP code, from
PHP developers banging out code for paying clients to companies like Facebook
which got started as PHP apps. Wordpress powers a ridiculous number of
companies which run on its code.

PHP may be a mess, but lets keep things in perspective. The state of what
really matters is alive and well.

------
Miyamoto
HN white knights JavaScript but hates PHP. I can't figure it out. Each
language is horrible in similar ways.

~~~
greenlakejake
I've used both. Each of these languages has its quirks. But JS's design makes
PHP's design look like it was done with crayons.

~~~
frozenport
I will never forgive JS for the `this` pointer.

~~~
greenlakejake
I will never forgive PHP for all kinds of shit.

~~~
antiglacier
Care to expand on that a bit (without repeating items found in the "Fractal of
Bad Design" article)?

------
bayesianhorse
Writing in PHP is a war against the platform - that's why PHP code tends to
look like a battlefield...

~~~
camus
That's why i'm impressed with Symfony and Doctrine.

Taking one of the worst language out there , and creating these well crafter
libraries , that's insane. I think type hinting and basic POO saved PHP.

~~~
paulhauggis
Symfony..maybe..but Doctrine?

Do we really need a sudo-sql language for creating object->db table relational
mappings?

I used Doctrine extensively at my last job..and I will not be using it for any
personal projects. It's bloated and when I need to optimize a sql query, I
have to essentially create a hack outside of the main ORM..which kinda defeats
the purpose in the first place.

I much prefer Zend or Codeigniter.

~~~
jtreminio
Doctrine1 was a _mess_. It was riddled with magic functions that were horrible
to work with. It was slow, too.

Doctrine2, mixed with entities, is _awesome_. Its relationship manager is fun
and easy to work with and it works very well.

You can even create hand-written custom queries if you want, using its own DSL
that's fairly similar to what you would expect.

------
segmondy
He complains about how internals lacks leadership, so why doesn't step up and
fill that void instead of running away?

~~~
eksith
He tried that. He also cites an example :

    
    
      "To illustrate why this is an issue, I posted this reply explicitly asking 
      for feedback on two items. How many replies did I get? One. A single reply. 
      Oh, there were more replies to the thread afterwards. But they were too 
      busy arguing over the other off-topic or non-constructive things in the 
      above list to actually discuss the open issues with the proposal."
    
    

The problem here seems to be quite endemic and I don't think there are any
simple fixes. This seems to be a cultural problem. I'm not even sure how to
tackle something like that.

------
anuraj
PHP will be useful if the bloat is eliminated. Just plain procedural
scripting, simple, straight - Nothing else is needed. By the way, that is my
view of any scripting language. Languages used to write complex systems should
be type safe and strictly structured.

------
0x0
Is this just a case of meritocracy at play?

I haven't followed the full discussion and events leading up to here, but
would it be very wrong to assume this just a case of a bystander starting a
discussion that didn't really catch on with any of the active maintainers?

~~~
mintplant
Given the responses cited at the end of the post, I would assume that the
author was previously a contributor of some significance to the project.

~~~
0x0
I just grepped the php-5.4.19 source and the only mention I found was for a
bug reported and fixed in some earlier version, though.

~~~
mintplant
Doing a `git shortlog --author "Anthony Ferrara"` in php-src/master pulls up
72 separate commits.

------
patkai
Slightly off topic, but relevant question: how many people move away from PHP
because they get too annoyed to work with it - even if it does "work" \- and
how many are moving from other languages _to_ PHP because they had enough of
another language.

------
camus
Move to Python, I'm sure the community can benefit from your skills. I see no
future in PHP development. If the core is rotten ,you can have the best libs
in the world (symfony,doctrine,...) in the end you still need to face PHP
architectural problems. Or back to the JVM maybe.

------
MrZongle2
Am I the only one who feels like this is a temper-tantrum of somebody who
wanted to be in charge of more toys, punctuated with some salient (but
obvious) points about PHP?

~~~
citricsquid
ircmaxwell has contributed a hell of a lot to PHP recently, this is not some
worthless shmuck complaining, this is someone that _can_ and _does_ provide
significant value to the community.

~~~
MrZongle2
Who said he was a "worthless schmuck"?

Geniuses can have temper-tantrums, too. Just because he has made worthy
contributions doesn't mean that he isn't acting like a drama queen.

~~~
mwfunk
You referred to his post as a temper tantrum (subtext: he's being childish),
refer to him as someone who just wants more "toys" (subtext: also childish),
and just had to point out that his points about PHP were obvious (subtext:
nothing interesting to say). Then you suggested that he might be a drama queen
(subtext: too numerous to list here). That may not reflect your feelings, but
that is what you communicated, whether you meant to or not. It's the nature of
electronic communication- it's very easy to misinterpret. Maybe you talk like
this in real life and being somewhat hyperbolic in your choice of words is a
humorous verbal quirk, but none of that comes across electronically.

