On Mon, Feb 27, 2012 at 6:38 PM, Anthony Ferrara <ircmax...@gmail.com>wrote:

> > no, it is: "come back after you did your homework, and you can provide
> new
> > arguments to the discussion"
>
>
> To be completely fair, I did homework on this.  I went back to 2000 on
> marc.info's archives and read almost all of the 400 posts matching the
> search http://marc.info/?l=php-internals&w=2&r=13&s=strict+typing&q=b
> and a bunch of the posts on
> http://marc.info/?l=php-internals&w=2&r=54&s=type+hinting&q=b
>
>
that's nice.
as I mentioned in my previous (and maybe in some other) mail, I think that
it would be __really__ nice to have those discussions summarized.
sorry for replying your mail later than some others, but I was afraid of
the wall of text. :)


> The vast majority of what I found were quite good arguments for
> including the feature.  I found quite a bit of "this was discussed to
> death, do your homework and provide new arguments".  What's odd, is
> that one of the earliest on-topic threads that I found (2007:
> http://marc.info/?l=php-internals&m=119514660125258&w=2 ) had this as
> the third reply.  The only on-topic discussion that I found prior to
> that was in 2006 (almost exactly 1 year prior:
> http://marc.info/?l=php-internals&m=116257685415135&w=2 ).
>
> Discussed to death.  Yet only one time before (discussing a specific
> patch)...
>

I only joined the lists like 3 years ago, but I remember discussing this
idea more than that.
I can dig up the threads if you are interested, the biggest discussion was
after Derick commited the scalar typehint patch from Ilia to trunk and
after a pretty heated and long discussion and multiple alternative
proposals the patch was reverted and Derick implemented a Reflection based
infrastructure for checking the typehints.

some history:
2006
http://derickrethans.nl/typehints-for-scalar-types.html
http://php.markmail.org/message/nalhrp5n5p3srj7u#query:+page:1+mid:nalhrp5n5p3srj7u+state:results
2008
https://wiki.php.net/rfc/typehint
2009
http://ilia.ws/archives/205-Type-hinting-for-PHP-5.3.html
http://schlitt.info/opensource/blog/0712_scalar_type_hints_in_php.html
2010
http://ilia.ws/archives/217-Scalar-Type-Hints-are-Here!.html
http://schlueters.de/blog/archives/139-Scalar-type-hints-in-PHP-trunk.html
http://schlueters.de/blog/archives/148-More-on-scalar-type-hints-in-PHP-trunk.html


> And the opponents still said no...
>

with the new RFC process there is a rule of thumb/gentlemen agreement that
if a large portion of the core devs are against a specific change, then it
shouldn't be added, or to form it otherwise consensus should be reached
instead of pushing through changes by 50%+1 (or 66%+1).
this specific change was such a controversial one that we couldn't reach
conclusion..


>
> There were also quite a few problems identified with scalar hinting
> and auto-casting vs strict erroring.  However, there were also
> solutions proposed to nearly each and every one of them.
>

There were ideas, but they didn't have enough traction.
IMO we can't have a proper solution without changing the existing behavior
for complex types, if you implement strict typing for scalars that turns
the language strict typed, if you add dynamic/weak typing for the scalars,
you will have an inconsistent implementation.


>
> And the opponents still said no...
>

to tell the truth they said no, but it was the original commiter who
reverted the change.
(sorry Derick, I don't remember the details, feel free to correct me on
this.)


>
> It has been brought up time and time again.  Solutions have been
> proposed which have no fundimental issues (inconsistencies,
> problematic operations - such as references, etc)...
>

maybe I missed those, what are you referring to?
I see the ones that I linked + the following:
https://wiki.php.net/rfc/typechecking

https://wiki.php.net/rfc/autoboxing
https://wiki.php.net/rfc/boxingandunboxing
https://wiki.php.net/rfc/splweaktypehintingwithautoboxing


> And the opponents instead said "this has been discussed to death, no"...
>

nope, they first discussed to death. then when people without much insight
or knowledge without the past discussion brought back the topic, some
people felt that it is too soon to discuss it again, as nothing new is on
the table.


>
> Please can you stop saying "this has been discussed to death".  To be
> frank, don't stop the discussion because you don't like the idea.  It
> has been discussed to death.  But the discussion has only really ever
> involved people who are for it.  The opponents by and large have used
> two arguments: "It has been discussed already, so no" and "don't make
> PHP into Java".
>

I don't mind what others do with their free time, so feel free to discuss
it, but somehow it seems for that some people are wasting their time
running the same circles others did years before, and yelling others for
not reading through 50 mails (from which maybe 5-10 has insightful
comments) or wanting to discuss the topic in detail.
I really think that after seeing this as a hot topic as it is, that we
don't have a proper wiki page summarizing and linking all of the previous
discussions. That way even if we can't find the final/best solution, we
could continue the discussion anytime, and we could just point
the newcomers to that page, and they would be able to catch up.
I really think that it is no bad intention from the php devs side in this
topic, but they are burned out discussing this, and the general tone and
finger pointing of this thread doesn't really help the issue.
If somebody have the time, and would like to move this forward, the first
step would be to trying to understand the issue and hand, gathering all
previous discussion/info available, creating a wiki page then:
- document what is the current typehinting implementation, what are the
pro/cons.
- what are the pros/cons for scalar type hints in general.
- what are the pros/cons for weak/strict scalar type hints in general
- what are the previously suggested solutions/implementations, what are the
pros/cons for them
- (optionally do the same for the return type hints)


> There has been some discussion of technical merit and problem
> resolution by opponents, but finding it is VERY difficult among all
> the down trodding commentary.
>

I found your usage of the word opponent a little bit disturbing, but maybe
I'm just thinking into it too much.
I agree that it is frustrating if your arguments are turned down that "we
already discussed that" (been there, done that. I mean in your situation).
I also think that it would also help if the signal/noise(+personal attack)
ration would be better. Usually I try to follow the discussion on the list,
but I have to tell you that I'm almost out of being able to do that, as the
discussion seems to have lack of focus (Scalar type hinting, Object
Casting, both spawned from the ENUM proposal and there are also 3-4 other
hot topics currently.).
I think that we all should calm down a little bit, and catch up with the
reading and focus on how to solve the issue instead of just trying to prove
that the "opponent" is wrong.


>
> So let me make a plea:
>
> If you don't like this feature, and you can explain from a TECHNICAL
> perspective why, please do so!  If you don't like the feature, and are
> going to lean on "It's not Java", or "We've discussed this to death
> already", please don't...
>

This goes both way, so one side would need to not turn down the other
simply based on the past discussion, but the other side should also read
those discussions if provided.
I think that I expressed my personal opinion and linked a few articles and
I can also gather some of the discussions on the mailing list (at least
what took place after me joining the list).
Now it would be nice if you could point out that what are your solutions
those technical arguments brought up there.


>
>
>
> And to be fair: "and you can provide new arguments to the discussion"
> has already happened quite a bit (dating back the past 5 years), but
> those arguments were ignored or overruled for political reasons.
>

I disagree.

-- 
Ferenc Kovács
@Tyr43l - http://tyrael.hu

Reply via email to