Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:93274 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 70469 invoked from network); 12 May 2016 12:48:28 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 12 May 2016 12:48:28 -0000 Authentication-Results: pb1.pair.com smtp.mail=zeev@zend.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=zeev@zend.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 157.56.110.113 as permitted sender) X-PHP-List-Original-Sender: zeev@zend.com X-Host-Fingerprint: 157.56.110.113 mail-bn1on0113.outbound.protection.outlook.com Received: from [157.56.110.113] ([157.56.110.113:8352] helo=na01-bn1-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 29/6E-28272-89B74375 for ; Thu, 12 May 2016 08:48:27 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Ab6dT80B5oGj0YLoAHxJWgb5333aaepdmHeknlarJ84=; b=2p8H1qGQcB/BmKvPjH6BdGWC7XnbM+g0uRQUxxrExWPSsDVlNvkWaQ3v3YNB0eGsZfj1AvB8DR5/nQHqiAb8nMgy0/aEXW2wfBEgVyth2NIw6lAX6og9aPJb/0CCYGrLGjozzjexDEBShro5uYziKIfH9IhMBSUcOu4ON7XDgVw= Received: from BY2PR02MB298.namprd02.prod.outlook.com (10.141.140.21) by BY2PR02MB298.namprd02.prod.outlook.com (10.141.140.21) with Microsoft SMTP Server (TLS) id 15.1.485.9; Thu, 12 May 2016 12:48:19 +0000 Received: from BY2PR02MB298.namprd02.prod.outlook.com ([10.141.140.21]) by BY2PR02MB298.namprd02.prod.outlook.com ([10.141.140.21]) with mapi id 15.01.0485.016; Thu, 12 May 2016 12:48:19 +0000 To: Quim Calpe CC: "davey@php.net" , Larry Garfield , "internals@lists.php.net" Thread-Topic: [PHP-DEV] [RFC] Pipe Operator Thread-Index: AQHRolNOHPYtov7fr0u1QLMw6YCXeZ+jJ1UAgANBmQCAACBagIAA5DwAgAAcmICAAAaoAIAAAp+AgAAB6YCAAAFcgIAACKgAgAAPBICAAAOdgIAADYmAgAeDeoCAAKavAIAAO4oAgAAN4wCAAAURAIAAppQAgACq0ACAAAgDAIAC4RKAgAC8HICAACG0gIAABA5S Date: Thu, 12 May 2016 12:48:19 +0000 Message-ID: <92E7F8A8-0845-48A7-91B1-9554C5F66C9D@zend.com> References: <39071a01-a42c-0952-b3a8-b4769c79b56b@fleshgrinder.com> <0ac3be89-6fb4-610a-ef89-0928f264f96c@fleshgrinder.com> <71379db5-b7b8-78b3-ada5-eee34e6e22d6@fleshgrinder.com> <452ddb93-1f47-1d0f-4f24-bedbff506b27@gmail.com> <98.61.11104.A1D41375@pb1.pair.com> <7c94ca37-e188-dd2b-a66f-bb63bf03041a@gmail.com> <1463008795.1856219.605250569.74618FC4@webmail.messagingengine.com> , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: kalpe.com; dkim=none (message not signed) header.d=none;kalpe.com; dmarc=none action=none header.from=zend.com; x-originating-ip: [2.53.22.161] x-ms-office365-filtering-correlation-id: 3626a5c9-754e-476e-ea86-08d37a63b218 x-microsoft-exchange-diagnostics: 1;BY2PR02MB298;5:Q09RBvQ2OeD1ST2vsBr214IZO/ylm+0cPbFh5/MMpAEgpPjO/cCzXfK6m9OH6EJrGUYS+xDOcvKGnzCRMX4bDvoYUM6di6cHiTsMwTutv7JE38GfYiIf9EBVRD5aHAB+7n7rcdDU6zju0RM5R//mwA==;24:23rqP//sfIfaOPkRxSWRPhkILePA2N0x/46diKOrNZHk4dPDiwz2IPC5ViOGA+D0WNXE0ScLt3xPOs9UtQgp76rvE5hAmYsyKrzS9Nmwgow=;7:SThlRMZNa8XOETJztlHzN5rEDOr4Ji+2k0ZbTVEMJZw7Wx6UBigfAgwFRaqw7lqdWzbcMdhTkh2sfUIBsumW+AumHcWzmwTLsugsULh7+Fp0MoZ00rDvQIj2UeSzxcPYIcSNr2L3a5KD22GG7j/kmK1x+YERIcJz1icS2w2saaMaWudFImVeJc9BjXld3KmV x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY2PR02MB298; x-ld-processed: 32210298-c08b-4829-8097-6b12c025a892,ExtAddr x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);SRVR:BY2PR02MB298;BCL:0;PCL:0;RULEID:;SRVR:BY2PR02MB298; x-forefront-prvs: 0940A19703 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(6009001)(24454002)(377454003)(81166006)(54356999)(76176999)(19580395003)(33656002)(19580405001)(3280700002)(2900100001)(5002640100001)(2950100001)(50986999)(5008740100001)(561944003)(110136002)(189998001)(122556002)(66066001)(3660700001)(77096005)(93886004)(6116002)(3846002)(102836003)(11100500001)(586003)(36756003)(5004730100002)(92566002)(106116001)(99286002)(2906002)(87936001)(86362001)(1220700001)(8936002)(104396002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY2PR02MB298;H:BY2PR02MB298.namprd02.prod.outlook.com;FPR:;SPF:None;MLV:sfv;LANG:en; spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-8-i" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-originalarrivaltime: 12 May 2016 12:48:19.3793 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 32210298-c08b-4829-8097-6b12c025a892 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR02MB298 Subject: Re: [PHP-DEV] [RFC] Pipe Operator From: zeev@zend.com (Zeev Suraski) > On 12 =E1=EE=E0=E9 2016, at 15:34, Quim Calpe wrote: >=20 >> On Thu, May 12, 2016 at 12:33 PM, Davey Shafik wrote: >>=20 >> On Thu, May 12, 2016 at 1:19 AM, Larry Garfield >> wrote: >>=20 >>>> On Mon, May 9, 2016, at 10:21 PM, Stanislav Malyshev wrote: >>>> Hi! >>>>=20 >>>>> |> seems like a common symbol to use, but it admittedly does look a >>>>=20 >>>> So, usage in one semi-obscure language (F#) and one completely obscure >>>> one (Elixir) - Clojure doesn't use |> - and one proposal for Javascrip= t >>>> now qualifies for "common". And that counting the fact that neither of >>>> them actually uses the worst part of proposed syntax - magic variable >> $$. >=20 > Is $0 being considered? It's not ideal but is used as "pattern match > reference" in preg_replace, so we have a (sort of) precedent here. Same f= or > $1 (first capturing subpattern). >=20 Folks, Whether it's $$ or !# or $0 or any other random symbol doesn't really matte= r. What matters is the introduction of a new symbol for this purpose and t= he non intuitive nature it will have. This is not analogous to the namespace operator, where it was obvious we wa= nted namespaces, and was only a matter of picking the right one. It's also= not analogous in the sense that codebases that use namespaces tend to use = them all over, so the likelihood of not being acquainted with it is slim. Here we have a completely optional syntactic sugar, that's not nearly as wi= dely useful as OOP or namespaces, and the question is whether the added com= plexity of a new operator, a new symbol and the new semantics around them b= oth are worth the benefit of introducing them. IMHO it's not. Zeev=