Newsgroups: php.internals
Path: news.php.net
Xref: news.php.net php.internals:101840
Return-Path: <narf@devilix.net>
Mailing-List: contact internals-help@lists.php.net; run by ezmlm
Delivered-To: mailing list internals@lists.php.net
Received: (qmail 37074 invoked from network); 12 Feb 2018 13:53:49 -0000
Received: from unknown (HELO lists.php.net) (127.0.0.1)
  by localhost with SMTP; 12 Feb 2018 13:53:49 -0000
Authentication-Results: pb1.pair.com smtp.mail=narf@devilix.net; spf=pass; sender-id=pass
Authentication-Results: pb1.pair.com header.from=narf@devilix.net; sender-id=pass
Received-SPF: pass (pb1.pair.com: domain devilix.net designates 74.125.82.47 as permitted sender)
X-PHP-List-Original-Sender: narf@devilix.net
X-Host-Fingerprint: 74.125.82.47 mail-wm0-f47.google.com  
Received: from [74.125.82.47] ([74.125.82.47:50704] helo=mail-wm0-f47.google.com)
	by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP
	id FB/41-26725-C6C918A5 for <internals@lists.php.net>; Mon, 12 Feb 2018 08:53:49 -0500
Received: by mail-wm0-f47.google.com with SMTP id f71so9735977wmf.0
        for <internals@lists.php.net>; Mon, 12 Feb 2018 05:53:48 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=devilix.net; s=google;
        h=mime-version:in-reply-to:references:from:date:message-id:subject:to
         :cc;
        bh=//zw6UEyaBiBhnRSgat3ofamJQJ0/BB9SfhbNTDvX4M=;
        b=T5guqTc0zNCDBw3b+eGJ+qAnVZwdRhdfaoAK2bMs8znpoLNevCTuXiXZWGURSUb983
         HJ0a7CGezgdU4PPrOiWOfRv0JaE8JDNB3/x1XIIi1Ni5hc98OVg+YyIKkmIF1XNJP1eI
         eU1yVfpODlwaAio0cDg9CEQIkh1CPm0VuPCQM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20161025;
        h=x-gm-message-state:mime-version:in-reply-to:references:from:date
         :message-id:subject:to:cc;
        bh=//zw6UEyaBiBhnRSgat3ofamJQJ0/BB9SfhbNTDvX4M=;
        b=aWBA8K/yanFjrg7TfAJnpyzLp1FfZcKeMWcqkzNgVGOaTUKsZ6jiVEAZ/X0kJmgbaR
         LDIEaNgmhS6/bRXxfIox1QvrYd2nBQLVag0ncUJ5VIFS1g5BXEHMxPhB/FbQKJOaq44b
         +L2NnPV6taWv1EvK6Kg70Xbw67hGD12Koa7lYZt15ixS6ByS2fxZKwBZRrdbDOq9Px0d
         qqJUwYnS1xpd3WTO+fzWvrPYw35BK3ZN7E69qem/WANz+98xBGAfT+MO1c0Xr7pyFFBj
         IeqF6hGuUmLdyLhdWAA16/IV4zDpIzS6KO2ut2C37RRmVGjWrFdPH93bvn9Hhf3SjC2M
         b3PA==
X-Gm-Message-State: APf1xPAqouV9UkaiwC5gSCa8acnFgfNtr9vFYc+aU2rUABGbotsYtHuF
	vYiyskjFhi/xKx9argQM/Ae5DK07uUCqmKdzo3wxfSwk
X-Google-Smtp-Source: AH8x226kWpHwO0HO4OAtHN3mR6FqL+X5wOVektAl5cZRyagZydS4DrG737CDMf27XAfaRdqsHjT5AN0vQtobWSJ7I8c=
X-Received: by 10.28.174.198 with SMTP id x189mr3493389wme.118.1518443625699;
 Mon, 12 Feb 2018 05:53:45 -0800 (PST)
MIME-Version: 1.0
Received: by 10.223.131.161 with HTTP; Mon, 12 Feb 2018 05:53:45 -0800 (PST)
In-Reply-To: <tencent_5B2FFA9D644D5FE024681649@qq.com>
References: <CAOv67guxH2CN5oAOj=+v_U94D_J42Q2MZJzWgVAmwe519-AOPA@mail.gmail.com>
 <CAPhkiZzpKPeJKnR7f+JMQ-8zS87_2g7WWcyhgwwoJNKHz6uf_w@mail.gmail.com> <tencent_5B2FFA9D644D5FE024681649@qq.com>
Date: Mon, 12 Feb 2018 15:53:45 +0200
Message-ID: <CAPhkiZxmcMabwcxDMn9jV-f0veBW8_4=Mq9PiKY4x3fuzkOA8A@mail.gmail.com>
To: CHU Zhaowei <me@jhdxr.com>
Cc: Wes <netmo.php@gmail.com>, PHP Internals <internals@lists.php.net>
Content-Type: text/plain; charset="UTF-8"
Subject: Re: [PHP-DEV][RFC][DISCUSSION] Deprecate the backtick operator
From: narf@devilix.net (Andrey Andreev)

Hi,

On Mon, Feb 12, 2018 at 3:16 PM, CHU Zhaowei <me@jhdxr.com> wrote:
> Hello,
>
>>But that being said, I do support the proposal. I understand people
>>opposed to removing features for no reason, but nobody needs this to
>>be an operator, it's not a widely-used one, and we all know if it was
>>proposed for addition today it would have 0 chance of acceptance.
>
> How do you conclude that this is not a widely-used one?
>

Running shell commands in itself is not a common task, and I've only
seen the backtick operator in 10-year old spaghetti code.

> btw, you already hit the most important point. Why do we deprecate or remove
> feature for no good?
>

You say it's "no good" because its existence doesn't create a problem
in an obvious way, but by that logic we shouldn't ever touch anything
that doesn't wreak havoc - I don't agree with that.

We're not talking about a function that satisfies a very common need
and/or has no alternative. We're talking about an operator that 100%
replicates an existing function, without providing any benefits over
it (on the contrary, using the function makes the code more easily
understandable) and is thus built into the language itself for
practically no reason.

Cheers,
Andrey.