RE: [PHP-DEV] Scalar type hinting
| From: | Zeev Suraski | Date: | Wed, 29 Feb 2012 21:49:36 +0000 |
| Subject: | RE: [PHP-DEV] Scalar type hinting | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-58354@lists.php.net to get a copy of this message | ||
Kris,
If we've agreed that strict typing is bad, why is it even showing on the discussion here?
Calling it 'firm' or 'strong' doesn't make a difference. If it errors out
or throws an exception (which BTW is out of the question for a language feature), it's strict
typing, regardless of naming.
Thanks for pointing me to the voting procedure that I helped author. Are you essentially telling us
we all have to waste our time again just because 6 months have passed? That alone might be reason
enough to turn the OR in there into an AND and shut down that loophole. The rationale behind that
time period was to allow for cases where there was an 'almost' majority. Here, the
proposal stands no chance. The only reason you're not seeing anybody from the core devs
responding is because they're tired of the Nth incarnation of the same discussion happening
again with zero new ideas.
If you can show why it makes sense to revive the discussion based on the 2nd bullet, that is:
The author(s) make substantial changes to the proposal. While it's impossible to put clear
definitions on what constitutes 'substantial' changes, they should be material enough so
that they'll significantly effect the outcome of another vote.
... then it's worth discussing. Nothing I saw in this thread falls under that category, as far
as I can tell.
Let's put it to rest.
Zeev
From: Kris Craig [mailto:kris.craig@gmail.com]
Sent: Wednesday, February 29, 2012 11:18 PM
To: Zeev Suraski
Cc: John Crenshaw; Richard Lynch; internals@lists.php.net
Subject: Re: [PHP-DEV] Scalar type hinting
....Aaaaaand here we go again. Every few days it seems, somebody jumps into this thread and reminds
us that strict typing is a bad idea, despite the fact that we've already all agreed on that
point about a gazillion times.
As for past RFC's, I would recommend you review the voting procedure. If an RFC is rejected,
the policy does allow it to be re-introduced after 6 months. While we're not actually reviving
a previously rejected RFC since we're discussing a different approach, even if you were to
apply that to the broader conceptual level, this discussion is still perfectly kosher since, as you
said, that rejection happened 1.5 years ago (3 times the required period).
Sorry if my tone is a bit frustrated, but I think we're all a bit annoyed at this repetitive
pattern by now. We start finding common ground and making progress, then somebody new makes a post
about the evils of strict typing and questioning why we're talking about this, obviously
completely ignoring the fact that we've already addressed this numerous times. So Zeev, while
I appreciate your interest and welcome you to participate, please take another look at the previous
posts in this thread, because we have already addressed your concerns ad nauseum and have since
moved-on. I do not want us to get dragged back into grinding our wheels in the mud on that. Thank
you for your understanding.
--Kris
On Wed, Feb 29, 2012 at 1:09 PM, Zeev Suraski <zeev@zend.com<mailto:zeev@zend.com>> wrote:
Guys,
I've followed this thread silently so far, and I'm wondering what changed over the last
~1.5years that warrants a new discussion into that matter.
I think the previous discussion ended with a pretty clear directive that strict typing has no place
in PHP. Rasmus said about the proposal back then "They aren't hints. It is strict typing
and in its current form I would ask you guys not to call the 5.4 release PHP." - which put in
one sentence what several others (myself included) put in many more words. So the
'strong'/'firm'/'strict'/whatnot version of what is being discussed
here, should probably not be discussed at all. We've been through it, and rejected it.
Back when we rejected strict typing, we also 'killed' the other RFC[*] that was born out
of that old discussion - the 'weak' auto-conversion RFC. If I recall correctly, it was
for two reasons - one was that the proponents of the strict typing said they'll firmly object
weak typing, and the other is that this RFC still had some issues that didn't seem obvious to
hammer out (main one I recall is that sticking to PHP's standard type juggling rules meant that
feature wasn't very useful, and we didn't feel very comfortable introducing brand new type
juggling rules just for that feature). If you want to revive that discussion, I suggest you take a
look at that RFC - confine yourselves to only work on stuff that stands a chance to get accepted (no
strict typing) - and try to come up with good answers to the open questions. No point in redoing
the whole discussion from scratch.
Zeev
[*]https://wiki.php.net/rfc/typecheckingstrictandweak
> -----Original Message-----
> From: Kris Craig
> [mailto:kris.craig@gmail.com<mailto:kris.craig@gmail.com>]
> Sent: Tuesday, February 28, 2012 11:58 PM
> To: John Crenshaw
> Cc: Richard Lynch;
> internals@lists.php.net<mailto:internals@lists.php.net>
> Subject: Re: [PHP-DEV] Scalar type hinting
>
> Err sorry yes John is correct. I wasn't paying close enough attention.
>
> Here's *my* vision of how that progression would look:
>
> $a = "1"; // Current kosher unchanged.
> weak int $a = "1"; // Converts to 1. No error thrown.
> strong int $a = "1"; // Converts to 1. May or may not throw an error (I'm still
> on
> the fence).
>
> $a = "blah"; // Current kosher unchanged.
> weak int $a = "blah"; // Throws E_x error level.
> strong int $a = "blah"; // Throws E_y error level.
>
>
> Where E_y > E_x.
>
> --Kris
>
>
> On Tue, Feb 28, 2012 at 1:52 PM, John Crenshaw
>
> <johncrenshaw@priacta.com<mailto:johncrenshaw@priacta.com>>wrote:
>
> > No, In the example given there's an error on int $a = "1". There
> > should be no error because this juggles fine.
> >
> > John Crenshaw
> > Priacta, inc.
> >
> > -----Original Message-----
> > From: Kris Craig
> > [mailto:kris.craig@gmail.com<mailto:kris.craig@gmail.com>]
> > Sent: Tuesday, February 28, 2012 4:47 PM
> > To: Richard Lynch
> > Cc:
> > internals@lists.php.net<mailto:internals@lists.php.net>
> > Subject: Re: [PHP-DEV] Scalar type hinting
> >
> > @Richard That's fairly close to what I'm thinking, yes. But there
> > seems to be a diverse range of ideas bouncing around right now, so at
> > present it's all in flux.
> >
> > --Kris
> >
> >
> > On Tue, Feb 28, 2012 at 1:44 PM, Richard Lynch
> > <ceo@l-i-e.com<mailto:ceo@l-i-e.com>> wrote:
> >
> > > On Mon, February 27, 2012 4:34 pm, Kris Craig wrote:
> > > > I think this is the main reason for differentiating between "strong"
> > > > (or
> > > > whatever word is appropriate) and "weak." The developer may very
> > > > well want their script to blow-up in such a case.
> > >
> > > I believe I actually "get it" now...
> > >
> > > You want 3 layers:
> > >
> > > $a = "1"; //current kosher unchanged weak int $a = "1"; // some
> > > E_x
> > > error level strong int $a = "1"; // some E_y error level where E_y >
> > > E_x
> > >
> > > Is that a correct summation?
> > >
> > > --
> > > brain cancer update:
> > >
> > > http://richardlynch.blogspot.com/search/label/brain%20tumor
> > > Donate:
> > >
> > >
> > > https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id
> > > =F
> > > S9NLTNEEKWBE
> > >
> > >
> > >
> > > --
> > > PHP Internals - PHP Runtime Development Mailing List To unsubscribe,
> > > visit: http://www.php.net/unsub.php
> > >
> > >
> >