Last week, Andi suggested that we (and by "we", I mean the PHP community at large) start preparing for 5.1. He made a call for anything people would like to squeeze in that's almost ready, and suggested that the biggest upcoming feature will be PDO. I agree, PDO is very exciting, and, while I haven't had an opportunity to try it yet, a consistent mechanism for database access in PHP has been long on the list of wanted functionality in PHP. More on PDO later (I hope).
Two other major discussions errupted:
First, Rasmus indicated that he would like to release his filtering mechanism. Much argument took
place. I pitched in my opinion (a couple times) -- ("This is a good idea, but it should never be turned on by default. This must be a developer-called mechanism, and not a sysadmin-called mechanism. I don't have time to deal with another magic_quotes_gpc-like fiasco."), as did many others, and discussion finally subsided. Rasmus' filter, whatever it will be called, will be in PECL only, and not the main PHP distribution. At least for now.
The other discussion was much more amusing (and annoying).
(((
Let's set the scene: most of the time (at
least on php.internals), I sit on the sidelines and watch. Once in a while, I have something useful to say, but it's usually more wise to sit back and merely lurk, because odds are that someone else with more karma will make the same, or similar comments that I would. Rarely will I speak up about a major issue, although I have done this in the past (and now we have Classkit, and hopefully Runkit, soon). Most people, I'd guess, simply lurk on Internals -- they (myself included) don't have the specific knowledge (Zend Engine internals, PHP Internals, API, etc.) to participate intelligently.
)))
The other main 5.1 related discussion was about operator overloading. The topic was breeched when Sebastian Bergmann pointed to Johannes Schlüter's patch to allow this new functionality. The general concensus on the list was something along the lines of "Operator overloading is (syntactical sugar|nearly impossible to debug|voodoo|unnecessary/can be accomplished in many other ways). Someone named Terje Slettebø showed up, seemingly out of nowhere, and started pushing the necessity of operator overloading in PHP. Again, the core PHP guys (the gurus with above-mentioned karma) all but uniformly denounced the idea. Still, Terje pushed. That was his mistake.
You see, Terje had already lost. It didn't matter how good his next point was. It didn't matter how well he extolled the virtues of operator overloading, and it didn't matter who he quoted from which newsgroup on whatever language. Why not? Simple: he doesn't have the necessary karma to fight back.
The PHP community, as I see it, is a near-textbook, yet real-life, implementation of a meritocracy -- you
gain "power" or karma, by contributing to the community. What Terje didn't understand is that he'd lost because of this. He hasn't proven himself. Maybe I just haven't seen the results of his labour, but Terje entered the battle only partially armed. Sure, he seems to know his stuff, concerning operator overloading in C++, but his contributions to PHP, if they exist, and to my knowledge, are minimal. He carries no weight, and when the powers that be tell you "no" you can't fight back if you don't have any karma.
Fortunately, entirely too long after the discussion had become useless, but not after a few humourous cheap shots, the list has been nearly free of operator overloading talk for a few days. Unfortunately (for himself, at least), I fear that Terje has dug himself into a hole that he will have a hard time crawling out of.
If I were him, I'd assume an alias, for the purposes of Internals, and lurk for the next 6 months,
saying little to nothing. Hopefully nobody will notice that he's the same person, if/when he comes back.
(-:
S
It's not just karma that carries weight, but when you're arguing for a new language level feature to appear in PHP, you'd better have done your homework. You need to understand how the parser works, how the compiler works, how classes and objects work and appreciate the various compromises made between performance and features, and you'd better damned well have thought of backwards compatibility.
Arguing purely on the basis of how you like using the feature in another language isn't going to get you anywhere, no matter how well formed your argument is. Keep in mind that the core guys have been coding non-stop since before the birth of the PHP project 10 years ago, and have pretty wide experience of all the major programming languages. We know what the features are; you don't need to tell us. You need to convince us that it is technically possible and has no serious negative effects and that it fits with the PHP spirit. Most features from other languages don't usually meet these criteria.
well said, Wez.
I think you're 100% correct when you say "You need to convince us that it is technically possible and has no serious negative effects and that it fits with the PHP spirit." I hope that was clear.
My point was that he's crossed the line, and even if he DOES attempt to do this, now, it's too late.. some people may still listen to him, but it seems to me that most just write off his words, immediately.
S
I sent an email reply to Sean Coates about this blog, but then realised that I could post a response here, instead.
I realise this thread is from long time ago, but if anyone comes across it (like I did, today), I'd like to give my comment to it, as well.
I realise that if I had _demanded_ that PHP should have overloading, or claiming that it without doubt would be a good idea, I could have understood the reaction I got on the list. However, I know very little about PHPs internal structure, which is why I merely _asked_ about features like overloading, and also asked that if it had been discussed earlier, if I could get a pointer to it (so people didn't have to repeat arguments for a subject that may have been discussed to death, earlier).
I was, however, very surprised at the response I got from the list: Instead of getting reasoned arguments for or against something (or pointers to earlier discussion), I just basically got "Over my dead body!", "No!", "PHP is not C++!", and other such rubbish. Hardly a single technical argument was given (or pointers to previous discussion, other than "search the archive", which I did, without finding anything about it), only emotional responses about liking or not liking something, or flames.
As I said in my posting, I come from the C++ community, and I'm used to professional behaviour in discussions. I was frankly disgusted at what I saw, and got very disappointed at the PHP community, after this.
To quote from my mail to Sean Coates:
If the people in the PHP community really assess ideas based on whether or not the person contributing them is "known" to the community ("Oh, person X is well-known, so this must be a good idea..."), rather than think for themselves, then I'm sure I don't miss anything by not participating, either.
Regards,
Terje Slettebø
A programmer with 20+ years of experience, including over 3 years with PHP, currently working in a company developing web applications using PHP.
One more thing:
>If I were him, I'd assume an alias, for the purposes of Internals, and lurk for the next 6 months,
>saying little to nothing. Hopefully nobody will notice that he's the same person, if/when he comes back.
Actually, I "headed out the door", thoroughly disgusted by what I saw.
If this had been at comp.lang.c++, and people had treated a newcomer the way I was treated, I'd been ashamed of associating myself with the C++ community. However, fortunately, the C++ community isn't like that - at all.
The C++ community has a lot of bright, friendly people, excited at new ideas, etc. (if you search for my name at comp.lang.c++.moderated, you'll see I've been quite active at times, and usually without any problems at all. It's been a while ago, now, though, as I've been doing PHP for the last years), and I know a lot of them personally.
It doesn't matter if you're Bjarne Stroustrup or Joe Sixpack - if you ask a polite question, you deserve a polite answer. Anything else is unprofessional and disrespectful - in layman's terms: Just stupid.
And, no, I don't care about anybody's "karma" in my criticism: To me, it doesn't matter _who_ you are, but _what_ you are. See if you can see the difference.
If you're a PHP "wizard", but behave like an idiot, you're an idiot in my book.
Terje, I sympathize with you on this matter, but I will point out something that explains the situation in black and white. Since you have vastly more software experience than myself, I'm sure you will understand when I say that developers often have trouble adjusting to new ideas. Object-orientation is, despite being around for decades, still fairly new. What I mean by "new" is that a lot of the theory behind it is not well understood, even by long-time users. This is vastly more so the case with PHP because most PHP developers are not object theorists but rather procedural programmers who have only recently been introduced the OO paradigm. And while it would be nice to have all the power of C++ within arm's reach, these features must be introduced gradually--otherwise you risk overwhelming and alienating users.