Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129324 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 lists.php.net (Postfix) with ESMTPS id 780EE1A00BC for ; Thu, 20 Nov 2025 11:55:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1763639713; bh=3jfof1xtU67DRPkmk+bu0x+JCtaosMKCLBmMlT5Lu28=; h=Date:From:To:In-Reply-To:References:Subject:From; b=CQt1bUGuCYUJPBHYyDo4fe7nvqH3XQRkIUySSc996mhSqavXFGFotWX73ZYPwkB4s eY5gvppPQApXok/wAnM63v8iT8EMukzRzjnO4fi4axShBZX0sOSWWZLB2MFqVsRFG9 5+s0TkOQ+6DCfXj15UjKsDp+RWVyaZck5hCeajf617IYVRaj4fwY2PlTuTgRdC8Ihh nIZALmuf9Qphsj7vKtiC458d5dM4RThzMsHkldxyDKQ2nJvqHLNBi7FKqE1AQn1oF/ m8MflNvKNMF2pxeMGE8ssRh/xmyOsiu84UM1nvpe00p7F7yS4Gcry5+RF11Us+fpsP Ye/WmMmSuV+EA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 2F63F180382 for ; Thu, 20 Nov 2025 11:55:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) 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,SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from fout-b5-smtp.messagingengine.com (fout-b5-smtp.messagingengine.com [202.12.124.148]) (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 ; Thu, 20 Nov 2025 11:55:11 +0000 (UTC) Received: from phl-compute-12.internal (phl-compute-12.internal [10.202.2.52]) by mailfout.stl.internal (Postfix) with ESMTP id 393E41D00112 for ; Thu, 20 Nov 2025 06:55:06 -0500 (EST) Received: from phl-imap-05 ([10.202.2.95]) by phl-compute-12.internal (MEProxy); Thu, 20 Nov 2025 06:55:06 -0500 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=fm1; t=1763639706; x=1763726106; bh=3jfof1xtU6 7DRPkmk+bu0x+JCtaosMKCLBmMlT5Lu28=; b=sE47gZofpl41tPaULSfxUClqvU Bldd4HGSPqh2ZT5FL+nLGop8vXSYbipth6wfAyJpDylSITV8QGeNT27zDP3oqqBF J+LavhenruuE3K7YUOJvlvG4mRFZR4XMrvXVg5Dt72UrEm3wAyUGN68Dj6povGZT uUiG5oauDttdHCH/Ql326AZoVfnruFqiT3n9zJE1rOmIljSrZWfDOg44GqFVQ2Pr 4M26TTeyU02YUjnYVwd7BYKQGurOHf21IT9tLCzXudW7yq52lQ2jFxnvJUU+eeEZ Vlfdvvi2HB+ZMM2Zh4nTemgOFRLr0Rfg1c3pJ4pwY+4QkRlJm02f8nJh/k3A== 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-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1763639706; x=1763726106; bh=3jfof1xtU67DRPkmk+bu0x+JCtaosMKCLBm MlT5Lu28=; b=kAjNsAGU9BRkRFWeLhZsRP7vfRvdjAJun9AtpCD5HHk0ZGlfeb8 1Aznf5f8M3MBSytIm9EAqlWPSwmc8yDKbgb3CcQmFkSgkfJCjFWZUg9sGyg+Em0C da3CfAFONg6vASVtCeGGzjViYRaf9GNN/T1bIQ6Lb0vut3WPKkjX3oZvq8akUPRh JTJ1TsUJ/lzyOKZXd3/Ji6nVesHj4YN0neD7b3+e7OrpVXsTRiVBTNM8xr4v5FzY LKhebUDk8ThbYBx3N5xlr4XhCXtL+w/wWrB4oCEqfGwju3VFAzGHQiv4riGFTT9u re8kvyw1WJsEMLAc5/3qYYhToZuszWyFS9g== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtdeggddvvdejtdduucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucenucfjughrpefoggffhffvkfgjfhfutgesrgdtreerre dtjeenucfhrhhomhepfdftohgsucfnrghnuggvrhhsfdcuoehrohgssegsohhtthhlvggu rdgtohguvghsqeenucggtffrrghtthgvrhhnpedtueejtdethfeulefhtdelieduteelff dtudelheffgedtieehhfelieejgfevgeenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehrohgssegsohhtthhlvggurdgtohguvghspdhnsggprh gtphhtthhopedupdhmohguvgepshhmthhpohhuthdprhgtphhtthhopehinhhtvghrnhgr lhhssehlihhsthhsrdhphhhprdhnvght X-ME-Proxy: Feedback-ID: ifab94697:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 38A331820074; Thu, 20 Nov 2025 06:55:05 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 X-ThreadId: AfNtV4qggFeZ Date: Thu, 20 Nov 2025 12:54:44 +0100 To: internals@lists.php.net Message-ID: <95dc52ad-7d6e-48a7-9edd-3060103f5a38@app.fastmail.com> In-Reply-To: References: Subject: Re: [PHP-DEV] [VOTE] True Async RFC 1.6 Content-Type: multipart/alternative; boundary=53795b54e1324bd6b3603990ddc1ce03 From: rob@bottled.codes ("Rob Landers") --53795b54e1324bd6b3603990ddc1ce03 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Thu, Nov 20, 2025, at 11:18, Daniil Gentili wrote: > Hi, >=20 > >> Hello Bart. > >> I am ready to agree with every word. > >> > >> Participation from a working group, framework representatives, and = the > >> ability to adapt libraries in advance would remove the concerns that > >> are currently causing fear. This is probably the only effective > >> process for developing and introducing such a feature. > > > > Then two days later, you decided that no more discussion was=20 > > necessary, and opened a vote. > > > > This feels like a complete contradiction. > > > > Let's find a way to get that working group set up, and get people fr= om=20 > > other projects involved. > > >=20 > My key takeaway from Bart's message is: >=20 > > Moreover, even though there are quite a few people in the community=20 > who have the knowledge required because they either develop or work wi= th=20 > aforementioned libraries or extensions, (almost) none of them seem to = be=20 > involved in discussing this RFC. > > For an RFC that can drastically change the way we develop=20 > applications I would expect more experts on this matter to be involved= .=20 > Ideally, PHP core developers, library developers & maintainers, IDE=20 > developers, ..., would develop software using this branch to at least=20 > get some feel for the paradigm and this RFC in general. >=20 > I absolutely agree with this take, however, so far, the discussion=20 > around this RFC has been, in my opinion, mostly bikeshedding, with=20 > theoretical correctness proposals that are an absolute nightmare in=20 > practice (like structured concurrency), proposed by people that=20 > admittedly have never written extensive amounts of async code in=20 > languages using multiple paradigms, and thus haven't: >=20 > - Experienced the pain of writing async with colored functions > - Experienced the footguns of structured concurrency > - And on the other hand, haven't experienced the pleasure and simplici= ty=20 > of safely writing async code in languages like Go, or in PHP using AMP= HP=20 > (which use uncolored and unstructured concurrency, the kind proposed a= nd=20 > championed by edmond) >=20 > While a working group *can* steer the conversation away from=20 > theoretically correct but practically unusable approaches, that can=20 > happen only if >=20 > - The correct people (i.e. async library maintainers, or people that=20 > write async logic every day in multiple languages like myself) are pre= sent > - They are given more weight than the average PHP developer who hasn't=20 > used async much if at all, and can only make theoretical proposals not=20 > based on practice and experience >=20 > I'm afraid that given the current state of the PHP community, which is=20 > largely new to async, the quality of the conversation in a working gro= up=20 > would not be much higher than the one I'm seeing in this RFC, and woul= d=20 > just protract even longer the agony of design by committee, where in=20 > reality what's needed is a single, clear and correct vision (which=20 > Edmond has), without influences from unexperienced people making=20 > proposals based purely on abstract/theoretical PoVs. >=20 > Regards, >=20 > Daniil Gentili. I kind of take offence to this statement. First of all, I work almost ex= clusively in Go these days, and on FrankenPHP. I only brought up colored= functions twice, because literally every language that has attempted th= e proposed solution here have all reversed course and implemented colour= ed functions. I've hand-written schedulers in C# (which is also cooperat= ively scheduled). Second, Go has a tremendous amount of primitives for dealing with concur= rency: wait groups, locks, atomics, etc. This proposal has none of that,= hence my concern with suspension points. Further, I have worked with AMPHP extensively since it's generator-based= days on multiple projects, and with Fibers quite extensively as well. S= o saying "proposed by people that admittedly have never written extensiv= e amounts of async code in languages using multiple paradigms" is factua= lly untrue. =E2=80=94 Rob --53795b54e1324bd6b3603990ddc1ce03 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable


On Thu, Nov 20, 2025, at 11:18, Daniil Gentili wrote:<= /div>
Hi,
<= br>
>> Hello Bart.
>> I am ready to agre= e with every word.
>>
>> Participation f= rom a working group, framework representatives, and the
>&g= t; ability to adapt libraries in advance would remove the concerns that<= /div>
>> are currently causing fear. This is probably the only= effective
>> process for developing and introducing suc= h a feature.
>
> Then two days later, you deci= ded that no more discussion was 
> necessary, and open= ed a vote.
>
> This feels like a complete cont= radiction.
>
> Let's find a way to get that wo= rking group set up, and get people from 
> other proje= cts involved.
>

My key takeaway fr= om Bart's message is:

> Moreover, even thoug= h there are quite a few people in the community 
who have= the knowledge required because they either develop or work with 
aforementioned libraries or extensions, (almost) none of them s= eem to be 
involved in discussing this RFC.
>= ; For an RFC that can drastically change the way we develop 
<= div>applications I would expect more experts on this matter to be involv= ed. 
Ideally, PHP core developers, library developers &am= p; maintainers, IDE 
developers, ..., would develop softw= are using this branch to at least 
get some feel for the = paradigm and this RFC in general.

I absolutely = agree with this take, however, so far, the discussion 
ar= ound this RFC has been, in my opinion, mostly bikeshedding, with 
theoretical correctness proposals that are an absolute nightmar= e in 
practice (like structured concurrency), proposed by= people that 
admittedly have never written extensive amo= unts of async code in 
languages using multiple paradigms= , and thus haven't:

- Experienced the pain of w= riting async with colored functions
- Experienced the footguns= of structured concurrency
- And on the other hand, haven't ex= perienced the pleasure and simplicity 
of safely writing = async code in languages like Go, or in PHP using AMPHP 
(= which use uncolored and unstructured concurrency, the kind proposed and&= nbsp;
championed by edmond)

While a w= orking group *can* steer the conversation away from 
theo= retically correct but practically unusable approaches, that can 
happen only if

- The correct people (i.= e. async library maintainers, or people that 
write async= logic every day in multiple languages like myself) are present
- They are given more weight than the average PHP developer who hasn't=  
used async much if at all, and can only make theoretica= l proposals not 
based on practice and experience

I'm afraid that given the current state of the PHP com= munity, which is 
largely new to async, the quality of th= e conversation in a working group 
would not be much high= er than the one I'm seeing in this RFC, and would 
just p= rotract even longer the agony of design by committee, where in 
reality what's needed is a single, clear and correct vision (whic= h 
Edmond has), without influences from unexperienced peo= ple making 
proposals based purely on abstract/theoretica= l PoVs.

Regards,

Danii= l Gentili.

I kind of take offence = to this statement. First of all, I work almost exclusively in Go these d= ays, and on FrankenPHP. I only brought up colored functions twice, becau= se literally every language that has attempted the proposed solution her= e have all reversed course and implemented coloured functions. I've hand= -written schedulers in C# (which is also cooperatively scheduled).
=

Second, Go has a tremendous amount of primitives for= dealing with concurrency: wait groups, locks, atomics, etc. This propos= al has none of that, hence my concern with suspension points.
=
Further, I have worked with AMPHP extensively since it's = generator-based days on multiple projects, and with Fibers quite extensi= vely as well. So saying "proposed by people that admittedly have ne= ver written extensive amounts of async code in languages using mult= iple paradigms" is factually untrue.

=E2=80=94 Rob
--53795b54e1324bd6b3603990ddc1ce03--