Newsgroups: php.internals
Path: news.php.net
Xref: news.php.net php.internals:124027
X-Original-To: internals@lists.php.net
Delivered-To: internals@lists.php.net
Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5])
	by qa.php.net (Postfix) with ESMTPS id C57BC1A009C
	for <internals@lists.php.net>; Sat, 29 Jun 2024 11:15:14 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail;
	t=1719659793; bh=M5mbibcQYMWgrLEzXUsD6uXkLoJ+HMNxQ0aXURLUOHE=;
	h=In-Reply-To:References:Date:From:To:Subject:From;
	b=CMXVcWk6/og9c4gsJI9jTbfY1uFkRb6zBOJy2myYlMqeI5rGNvDYlL9F9aFZRTyDZ
	 aL+N7OsZbO7+xRdABElg7zH1SN8pW15OXBjUiB2gJ7PQOCYhkRW/KLdgv96q/obl0+
	 aLmgNzCC+wHaPYzTDvPTV71/bcLjMzPE5UZL4eSjo07ZrO2VVZO4BMpd7mVy9SnwCL
	 a+1SbQObR6lL79NJvlNkQLRM7lI65AMlV0EvSWzGQd3d3ksMA7VwybJfDvG+2MMvKL
	 KtjFh/caMb1p2wk0iL1TNtplCmdwP318ilasnlwxbkNoBh3gdhmJ7eiYKjJAD+lTDj
	 3S0D446NMehzw==
Received: from php-smtp4.php.net (localhost [127.0.0.1])
	by php-smtp4.php.net (Postfix) with ESMTP id EBA8A180D4D
	for <internals@lists.php.net>; Sat, 29 Jun 2024 11:16:32 +0000 (UTC)
X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net
X-Spam-Level: 
X-Spam-Status: No, score=-0.1 required=5.0 tests=BAYES_50,DKIM_SIGNED,
	DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_MISSING,HTML_MESSAGE,
	RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,
	T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=4.0.0
X-Spam-Virus: Error (Cannot connect to unix socket
	'/var/run/clamav/clamd.ctl': connect: Connection refused)
X-Envelope-From: <rob@bottled.codes>
Received: from fout3-smtp.messagingengine.com (fout3-smtp.messagingengine.com [103.168.172.146])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256)
	(No client certificate requested)
	by php-smtp4.php.net (Postfix) with ESMTPS
	for <internals@lists.php.net>; Sat, 29 Jun 2024 11:16:32 +0000 (UTC)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41])
	by mailfout.nyi.internal (Postfix) with ESMTP id A61B613804E1
	for <internals@lists.php.net>; Sat, 29 Jun 2024 07:15:12 -0400 (EDT)
Received: from imap49 ([10.202.2.99])
  by compute1.internal (MEProxy); Sat, 29 Jun 2024 07:15:12 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bottled.codes;
	 h=cc:content-type:content-type:date:date:from:from:in-reply-to
	:in-reply-to:message-id:mime-version:references:reply-to:subject
	:subject:to:to; s=fm3; t=1719659712; x=1719746112; bh=iSLcTb2g6j
	ca/LSTygU0Onl/pHITtItJ32JTIv7JjWU=; b=SdcEA6XnjrVl7yRUTtXX88X43M
	ONwWr60yBg6fEabvndju3FkPEFsor5Gm5N0ZnLUaGtjVrRH08YJAX2iJ4YGvdZp7
	mvsZwodmtGIaM5UqbIouI0BWXmE7eldi0C0AvdQT5Uq6Ts3M9X6eBS6x5zSiPtZB
	cfq0JR3aOLQ6FWqoD4K1Z8IBEw3S0hYi5iG9haHzhRXIl/o5anv1Aj5mn5B/7Tua
	C5YRrPjyROJYl4qatfXdlfnGRuq0jIYs39qaL+pY882f2v47dTo+78npcTcr/s7O
	Jr7ferDq7dr9JdJokaYCEbVh4Fg7KkmDz01KdNQ3NXMAe/Px3DEHcjPoyzjQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
	messagingengine.com; h=cc:content-type:content-type:date:date
	:feedback-id:feedback-id:from:from:in-reply-to:in-reply-to
	:message-id:mime-version:references:reply-to:subject:subject:to
	:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
	fm2; t=1719659712; x=1719746112; bh=iSLcTb2g6jca/LSTygU0Onl/pHIT
	tItJ32JTIv7JjWU=; b=cTF8Xai21J2wJMv/1ODgSzmdQJWlph/ssPtwICalZ9KB
	+yjAteZm6Psqg0leTYP6ASuUCVGYEcMl6S9Wv1kuqSjNIg5LxJ4ieub2fX5i5E2g
	hCGlKbW1YJwCgO7QEwP7q0DLOgwqAZCq3gEQoVRTq1wNVTtI8rXjb/LhWq3ROmWJ
	OpAYtetG2xYUl5KXWFs3BBifEfV9pxFr4amcCuT5fb5zaC5aar1LFopAS7foUBxc
	AtPsWY8yDYOyOminc1/0sA82ymPsdXwZC7MXrZG5sBTupWbEWrULg4xl9fd8lsBI
	SaKwoySWuxs2MjvW52OsSpPMyyCcAFsCTT/WM76WSg==
X-ME-Sender: <xms:wOx_Zp4r3Mt0ZDfVY8bRlUboofmpI0gNLQtLsb8kuHNr2p8YktdInQ>
    <xme:wOx_Zm6ijB2cCNTGtxt9SH6Kl_cpX4XSwzrzynx-PU-bqWreaKQ1GTh2Ldxs2fN2D
    wGzTgyoCUaOl55uPvk>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrtdelgdefkecutefuodetggdotefrodftvf
    curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
    uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkjghffffhvffutgesrgdtre
    erreerjeenucfhrhhomhepfdftohgsucfnrghnuggvrhhsfdcuoehrohgssegsohhtthhl
    vggurdgtohguvghsqeenucggtffrrghtthgvrhhnpeeffeduhfduudeikeekudfghfdugf
    eljefgkeeghfdvieekledvvdejheetgeetgeenucevlhhushhtvghrufhiiigvpedtnecu
    rfgrrhgrmhepmhgrihhlfhhrohhmpehrohgssegsohhtthhlvggurdgtohguvghs
X-ME-Proxy: <xmx:wOx_ZgdVmAcVD32ovhZpjrQB_lhlfY5VTdcB0MUaiRxaSoTQEULj6g>
    <xmx:wOx_ZiLql9F1SrTwSwc0aOPedO9rfl_Rzwr9HtT2o669o9yRzCM1uQ>
    <xmx:wOx_ZtIApUllx3VKaVAj71sTCHhmhbYa6E9iNSNqw4FW2HAghoalWQ>
    <xmx:wOx_ZryhfPh1O1dpkfnFCbcNwJAbP1TL6MEUU0d6Y9MvODZKeviBkw>
    <xmx:wOx_ZvxrwmItzdEFFfOzUu1kYATW4A-Eo_a1D4pP9WwBiKag00Ejv-g6>
Feedback-ID: ifab94697:Fastmail
Received: by mailuser.nyi.internal (Postfix, from userid 501)
	id 3BAC415A0093; Sat, 29 Jun 2024 07:15:12 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.11.0-alpha0-538-g1508afaa2-fm-20240616.001-g1508afaa
Precedence: bulk
list-help: <mailto:internals+help@lists.php.net
list-unsubscribe: <mailto:internals+unsubscribe@lists.php.net>
list-post: <mailto:internals@lists.php.net>
List-Id: internals.lists.php.net
MIME-Version: 1.0
Message-ID: <e1744ee3-61df-490e-8f67-c9d18ee50ffa@app.fastmail.com>
In-Reply-To: <97EA49E2-43A9-42D2-B493-A6B66CC54914@edison.tech>
References: 
 <CAEUnE0fGZ3jFiBG=GyvnhBzH5a0iO4=n75PM=3+6zLAMrumEvA@mail.gmail.com>
 <0acedb8e-34be-4348-907b-4075cf7641fd@app.fastmail.com>
 <CAMrTa2Hhk31hgbr_fR7YAb94YPN030oTkvV5UD_ynRBM664QfQ@mail.gmail.com>
 <9c20b078-f82a-47fe-af23-2f3cdd233079@app.fastmail.com>
 <CAEUnE0fTwbc8LabwaNUxp9=vWCnes0E+E_zM+a_Ojera=jQSKg@mail.gmail.com>
 <A8486FCE-2788-47DF-9778-2872A3D32FC4@newclarity.net>
 <50529C6A-42BB-4D49-B720-FE1847577484@rwec.co.uk>
 <97EA49E2-43A9-42D2-B493-A6B66CC54914@edison.tech>
Date: Sat, 29 Jun 2024 13:14:50 +0200
To: internals@lists.php.net
Subject: Re: [PHP-DEV] [Initial Feedback] PHP User Modules - An Adaptation of ES6 from
 JavaScript
Content-Type: multipart/alternative;
 boundary=d8c5806a432a472cbb664b8767996c24
From: rob@bottled.codes ("Rob Landers")

--d8c5806a432a472cbb664b8767996c24
Content-Type: text/plain;charset=utf-8
Content-Transfer-Encoding: quoted-printable

On Sat, Jun 29, 2024, at 12:56, Mike Schinkel wrote:
>=20
>>  Most of it sounds completely impractical to apply in retrospect to a=
n existing one with millions of users - apart from the bits we actually =
already have, like points 3 and 6.
>>=20
>>=20
> You say it is impractical, you claim millions of users, but you don't =
address why the specific features are impractical.
>=20
> They are no more impractical than any other new language features PHP =
has added in recent years (and I am not being critical of what has been =
added, to be clear.)

So far, nobody has shown how it is practical -- that is on the person pr=
oposing the RFC. Ideally, this would be it, you show why it is useful, h=
ow to use it, etc. But it is also political. You need to show why people=
 would use it, why people would rewrite their entire application to use =
it (if the RFC calls for it), and so far, nobody has shown that other th=
an "there are packages!"

>=20
>> Rather than looking at languages which have done things completely di=
fferently,=20
>>=20
>>=20
>>=20
>>=20
>>=20
> "Completely" here is a leading word used in that context.
>=20
> There is nothing "completely" different about JavaScript, or Go for th=
at matter.  All three of JS, Go, and PHP are descendants of C.

I cringed at this. There is no direct lineage though they borrow come sy=
ntax from C, and if you want to push it, you might as well say they're d=
escendants of B which borrowed syntax from BCPL which borrowed syntax fr=
om CPL which borrowed it's syntax from ALGOL... eh, no, these languages =
are not related to each other. Inspired, maybe.

>=20
> We are not talking about APL, Whitespace, Befunge, or Intercal, after =
all.
>=20
>> I think it would be more useful to look for inspiration for ones whic=
h are *similar* to PHP's approach, but have extra features.=20
>>=20
>>=20
>>=20
>>=20
>> so there might be good and bad experiences we can learn from there, a=
s well. And I'm sure there are others that are much less alien than JS o=
r Go.
>=20
>=20
> I would argue JS and maybe Go is a lot more similar to PHP than Java o=
r C#.  But then the alienness is in the eye of the beholder. =20

No, PHP and Go are nothing like each other. With a bit of finangling, yo=
u can actually port JavaScript line-for-line to PHP, but not the other w=
ay around. If anything, JavaScript is more like PHP than PHP is more lik=
e JavaScript.

>=20
> You claimed you don't know JS or Go, but I don't know Java or C#, at l=
east not enough to be proficient in them.
>>=20
>=20
> That said, I really don't think gatekeeping based on the genetics of a=
 language is the path to improving it. Instead I think objectively evalu=
ating the specifics of the proposed features is the better path. And to =
me each of those things I mentioned stand on their own and can be justif=
ied, as needed.

I don't see any gate-keeping here, just people challenging assumptions a=
nd pushing for the feature to be better than it is currently being propo=
sed.

=E2=80=94 Rob
--d8c5806a432a472cbb664b8767996c24
Content-Type: text/html;charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html><html><head><title></title><style type=3D"text/css">p.Mso=
Normal,p.MsoNoSpacing{margin:0}</style></head><body><div>On Sat, Jun 29,=
 2024, at 12:56, Mike Schinkel wrote:<br></div><blockquote type=3D"cite"=
 id=3D"qt" style=3D""><div id=3D"qt-edo-original"><div><div id=3D"qt-edo=
-original"><br></div><blockquote type=3D"cite" style=3D"margin-top:1ex;m=
argin-right:0px;margin-bottom:0px;margin-left:0px;height:min-content;bor=
der-left-width:1px;border-left-style:solid;border-left-color:rgb(204, 20=
4, 204);padding-left:0.5ex;"><div><pre class=3D"qt-edo-pre"> Most of it =
sounds completely impractical to apply in retrospect to an existing one =
with millions of users - apart from the bits we actually already have, l=
ike points 3 and 6.<br></pre><pre class=3D"qt-edo-pre"><br></pre></div><=
/blockquote><div><blockquote type=3D"cite" style=3D"margin-top:1ex;margi=
n-right:0px;margin-bottom:0px;margin-left:0px;height:min-content;border-=
left-width:1px;border-left-style:solid;border-left-color:rgb(204, 204, 2=
04);padding-left:0.5ex;"><br></blockquote></div><div>You say it is impra=
ctical, you claim millions of users, but you don't address why the speci=
fic features are impractical.<br></div><div><br></div><div>They are no m=
ore impractical than any other new language features PHP has added in re=
cent years (and I am not being critical of what has been added, to be cl=
ear.)<br></div></div></div></blockquote><div><br></div><div>So far, nobo=
dy has shown how it is practical -- that is on the person proposing the =
RFC. Ideally, this would be it, you show why it is useful, how to use it=
, etc. But it is also political. You need to show why people would use i=
t, why people would rewrite their entire application to use it (if the R=
FC calls for it), and so far, nobody has shown that other than "there ar=
e packages!"<br></div><div><br></div><blockquote type=3D"cite" id=3D"qt"=
 style=3D""><div id=3D"qt-edo-original"><div><div><br></div><blockquote =
type=3D"cite" style=3D"margin-top:1ex;margin-right:0px;margin-bottom:0px=
;margin-left:0px;height:min-content;border-left-width:1px;border-left-st=
yle:solid;border-left-color:rgb(204, 204, 204);padding-left:0.5ex;"><div=
><pre class=3D"qt-edo-pre">Rather than looking at languages which have d=
one things completely differently,&nbsp;<br></pre><pre class=3D"qt-edo-p=
re"><br></pre><pre class=3D"qt-edo-pre"><br></pre><pre class=3D"qt-edo-p=
re"><br></pre><pre class=3D"qt-edo-pre"><br></pre></div></blockquote><di=
v><blockquote type=3D"cite" style=3D"margin-top:1ex;margin-right:0px;mar=
gin-bottom:0px;margin-left:0px;height:min-content;border-left-width:1px;=
border-left-style:solid;border-left-color:rgb(204, 204, 204);padding-lef=
t:0.5ex;"><br></blockquote></div><div>"Completely" here is a leading wor=
d used in that context.<br></div><div><br></div><div>There is nothing "c=
ompletely" different about JavaScript, or Go for that matter. &nbsp;<spa=
n style=3D"text-align:inherit;background-color:inherit;">All three of JS=
, Go, and PHP are descendants of C.</span><br></div></div></div></blockq=
uote><div><br></div><div>I cringed at this. There is no direct lineage t=
hough they borrow come syntax from C, and if you want to push it, you mi=
ght as well say they're descendants of B which borrowed syntax from BCPL=
 which borrowed syntax from CPL which borrowed it's syntax from ALGOL...=
 eh, no, these languages are not related to each other. Inspired, maybe.=
</div><div><br></div><blockquote type=3D"cite" id=3D"qt" style=3D""><div=
 id=3D"qt-edo-original"><div><div><br></div><div>We are not talking abou=
t APL, Whitespace,&nbsp;Befunge, or Intercal, after all.<br></div><div><=
br></div><blockquote type=3D"cite" style=3D"margin-top:1ex;margin-right:=
0px;margin-bottom:0px;margin-left:0px;height:min-content;border-left-wid=
th:1px;border-left-style:solid;border-left-color:rgb(204, 204, 204);padd=
ing-left:0.5ex;"><div><pre class=3D"qt-edo-pre">I think it would be more=
 useful to look for inspiration for ones which are *similar* to PHP's ap=
proach, but have extra features.&nbsp;<br></pre><pre class=3D"qt-edo-pre=
"><br></pre><pre class=3D"qt-edo-pre"><br></pre><pre class=3D"qt-edo-pre=
"><span class=3D"font" style=3D"font-family:Poppins, sans-serif;"><span =
class=3D"color" style=3D"color:#212529;"><span style=3D"letter-spacing:-=
1px;text-wrap:wrap;text-size-adjust:100%;"><span class=3D"size" style=3D=
"font-size:35px;">
</span></span></span></span><br></pre></div></blockquote><h3 class=3D"qt=
-wp-block-heading" style=3D"box-sizing:inherit;margin-top:auto;margin-ri=
ght:auto;margin-bottom:auto;margin-left:auto;line-height:52px;clear:both=
;"><blockquote type=3D"cite" style=3D"font-size:21px;font-weight:400;mar=
gin-top:1ex;margin-right:0px;margin-bottom:0px;margin-left:0px;height:mi=
n-content;border-left-width:1px;border-left-style:solid;border-left-colo=
r:rgb(204, 204, 204);padding-left:0.5ex;"><pre class=3D"qt-edo-pre">so t=
here might be good and bad experiences we can learn from there, as well.=
 And I'm sure there are others that are much less alien than JS or Go.<b=
r></pre></blockquote></h3><div><div><br></div><div>I would argue JS and =
maybe Go is a lot more similar to PHP than Java or C#. &nbsp;But then th=
e alienness is in the eye of the beholder. &nbsp;<br></div></div></div><=
/div></blockquote><div><br></div><div>No, PHP and Go are nothing like ea=
ch other. With a bit of finangling, you can actually port JavaScript lin=
e-for-line to PHP, but not the other way around. If anything, JavaScript=
 is more like PHP than PHP is more like JavaScript.</div><div><br></div>=
<blockquote type=3D"cite" id=3D"qt" style=3D""><div id=3D"qt-edo-origina=
l"><div><div><div><br></div><div><div>You claimed you don't know JS or G=
o, but I don't know Java or C#, at least not enough to be proficient in =
them.<br></div><blockquote type=3D"cite" style=3D"margin-top:1ex;margin-=
right:0px;margin-bottom:0px;margin-left:0px;height:min-content;border-le=
ft-width:1px;border-left-style:solid;border-left-color:rgb(204, 204, 204=
);padding-left:0.5ex;"><br></blockquote></div></div><div><br></div><div>=
That said, I really don't think gatekeeping based on the genetics of a l=
anguage is the path to improving it. Instead I think objectively evaluat=
ing the specifics of the proposed features is the better path. And to me=
 each of those things I mentioned stand on their own and can be justifie=
d, as needed.<br></div></div></div></blockquote><div><br></div><div>I do=
n't see any gate-keeping here, just people challenging assumptions and p=
ushing for the feature to be better than it is currently being proposed.=
</div><div><br></div><div id=3D"sig121229152">=E2=80=94 Rob<br></div></b=
ody></html>
--d8c5806a432a472cbb664b8767996c24--