On Mon, Jul 8, 2019 at 4:01 PM Zeev Suraski <z...@php.net> wrote:

>
>
> On Mon, Jul 8, 2019 at 3:38 PM Nikita Popov <nikita....@gmail.com> wrote:
>
>> On Mon, Jul 8, 2019 at 1:55 PM Zeev Suraski <z...@php.net> wrote:
>>
>>>
>>>
>>> On Mon, Jul 8, 2019 at 1:28 PM Nikita Popov <nikita....@gmail.com>
>>> wrote:
>>>
>>>> I have now made the following changes to the RFC:
>>>>
>>>>  * Removed enable_dl deprecation. The fact that dl() is currently
>>>> available
>>>> by default on CGI, which is a server SAPI, makes this more dicey and
>>>> needs
>>>> more careful consideration. As this RFC needs to go to vote today, I'm
>>>> going with the conservative option of dropping it from the RFC.
>>>>  * Removed register_argc_argv change from the RFC. This was not really a
>>>> deprecation, so does not belong here. We'll likely just want to make the
>>>> necessary changes in PHP 8.
>>>>  * Removed the INPUT_SESSION + INPUT_REQUEST deprecations. These have
>>>> been
>>>> warning since forever, so going through an additional deprecation phase
>>>> makes no sense. I went ahead and removed them in PHP 8.
>>>>  * For the deprecation of implode() with inverted parameter order,
>>>> explicitly point out that the single-argument form is not deprecated.
>>>>  * Various text improvements that do not change the content of the RFC.
>>>>
>>>> I will start voting on this RFC later today so we make feature freeze.
>>>>
>>>
>>> Nikita, Kalle,
>>>
>>> None of my feedback was even responded to.
>>>
>>> There's something fundamentally flawed in the way deprecations are being
>>> treated.  If there's no compelling case to deprecate, we shouldn't
>>> deprecate - it's that simple. Someone's (or even many people's) opinion
>>> about the standard library is not a compelling reason.  That can be a
>>> reason not to add something new - but absolutely not to remove existing
>>> functionality and break users' code.
>>>
>>> convert_cyr_string(), hebrev() and hebrevc() shouldn't even be
>>> considered for deprecation.  They don't clear the most basic requirement
>>> for deprecation - which is having some sort of negative impact to keeping
>>> them / positive impact from removing them.  There is none.  It shouldn't
>>> even be up for a vote.
>>>
>>
>> I've read your feedback, but didn't feel that a response would be
>> productive. There's a difference in philosophy here that we have already
>> discussed many times in the past, and I don't think discussing it one more
>> time will change things.
>>
>
> Some of my feedback could be attributed to different philosophies, but
> certainly not all of it.  I have to say, both in the previous time you
> mentioned that 'a response would not be productive' and this time around,
> even if that's not what you meant (and I certainly hope it wasn't) - I
> found it quite insulting.  I didn't object to the entire RFC, provided both
> focused feedback as well as constructive (IMHO) proposals to how we can
> potentially create a situation where both 'camps' are happy.  Is it really
> sensible to simply ignore it?  Should we move from RFC's to PDC's (Please
> Don't Comment)?
>
> There are broadly two reasons to deprecate: The first is to remove
>> technical debt in php-src itself. The second is to discourage bad practice
>> and encourage migration to better alternatives. You clearly do not see
>> value in the latter, and I can certainly see where you're coming from with
>> that, but please let people make their own value judgement here, rather
>> than saying that it "shouldn't even be considered".
>>
>
> I absolutely do see value in discouraging bad practice.  I was one of the
> key supporters of deprecating safe_mode, and if I recall correctly also
> magic_quotes - two of the worst practices in PHP's history that were
> *huge* compatibility breaks.  Andi and I reinvented the PHP object model
> at a huge compatibility breakage cost, because it was the right thing to do
> and fostered much better development practices.  So please, don't
> characterize my view as 'clearly not seeing value in discouraging bad
> practice'.  A better way to describe it is that my bar for defining 'bad
> practice' is slightly higher than the virtually non-existent one used for
> some of the deprecation proposals in the RFC.
>
> Deprecations, unlike introduction of new features - aren't a case where we
> can simply let "people make their own judgement".  That makes sense when
> introducing new features.  But when deprecating feature - this is a
> surefire recipe for a tyranny of the majority.  That's exactly why the
> Project's DNA should be respected, instead of trying to push anything and
> everything for a vote.  True, it's not explicitly spelled out as a ground
> rule, but it's very strongly implied here, in the voting RFC:
> "Given that changes to languages (as opposed to changes to apps or even
> frameworks) are for the most part irreversible the purpose of the vote is
> to ensure that there's strong support for the proposed feature".
>
> Obviously, 'for the most part' is up for interpretation - but the
> intention is clear - breaking things should only come if there are
> substantial, tangible gains.  That's how it's always been, and that's how
> it should continue to be.  We can perhaps turn it into a harsh requirement
> (such as 95% vote), or we can stick with only pushing forward proposals
> that bring real, tangible value.  I think even you would agree that this
> isn't the case for at least some of of the deprecation proposals, and as
> such, I very much stand by my position that the deprecations in the list
> that bring virtually no gains other than 'we think people are better off
> doing it differently' should simply not be voted on.
>
> Moreover, at least in on case here - there's simply no objectively (or
> even subjectively) better way of doing things - the RFC is simply stating
> that "people should not be doing this at all in 2019", even though the
> authors are clearly not domain experts in that topic (please pardon my
> assumption and correct me if I'm wrong).  I'm not aware of any better
> alternative to using hebrev() in a context where it's needed.  Both Stas
> and I provided examples/indicators that it is in fact, still being used -
> even if it's not as common as it was in 1998 and probably used mostly
> outside the context of HTML (which, by the way, makes the whole W3C quote
> about what should or shouldn't be used in HTML irrelevant).
>

I'm certainly not a domain expert in RTL languages. I'd be happy to drop
hebrev() from this RFC if someone can bring forward a good technical
argument as to why these functions are still necessary and where they would
be used. However, and given your comment here I may have just missed this
between other mail, I have not actually seen any technical argument on this
topic. The only thing I found was a namedrop of "IBM i" without any
explanation of the significance this has for Hebrew text or the hebrev()
function. (To be clear: I'm not interested in whether it's still used, I'm
interested whether it's still used *for good reason*.)

Nikita

Reply via email to