Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:129335 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 4056F1A00BC for ; Thu, 20 Nov 2025 15:39:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1763653187; bh=8X7m9rjIefXMzjdGss8gHeEab4qwJEncF9D8mHFI2t4=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=dZEQr2MMYoaI15X2zVVNHop4zGCTNVMENEKDpJKktV1IDJilqlI3t3g7Q+S6lLmsG FLewoMGCdYLxPxrDID0A1rusUm2i1T2yU1Jx9s3k5lFMYEBuBAeOv09SGDO6R9P4Oa AJZWmJh7OpF5fCi9otuO/wdtkx7WpzaIt9Q7u9TC301pjTVDq2HeC2/nZJWfoMydOb A/QJuyyxgrNptHxNwZWNm7eudx8pSB9mA2dDTuC7kcjRoFwMOtJtLCP9YrtG7ZWAU3 Lv2qLx7a2OQ74hLvTEAADe+hkMRDNTrRlo1O1TrF2FhAvJBvDcI48QMPYidvhyxLKf ZKuoeMLYPZfuA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 9ECE71804FF for ; Thu, 20 Nov 2025 15:39:46 +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=1.8 required=5.0 tests=BAYES_50,DMARC_NONE, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, HTML_MESSAGE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.1 X-Spam-Virus: No X-Envelope-From: Received: from mail-oo1-f52.google.com (mail-oo1-f52.google.com [209.85.161.52]) (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 15:39:46 +0000 (UTC) Received: by mail-oo1-f52.google.com with SMTP id 006d021491bc7-6567a0d456bso399284eaf.1 for ; Thu, 20 Nov 2025 07:39:41 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763653181; x=1764257981; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=q6tE4YtNPJolUXBWoQ3V/9JfYiYAfiRPe7Bq3LF/lZw=; b=PrKtHI9PsL+fLRqi20/kRRy387ErXzhMkEb5G/vNgis8L272seD6UH7x8mhl8gh/Ve +QkYI2aH4PNet1kMqrt7OwS/hv7pKNmpOxocnAppvEIG7NMmFuIxp78mRQyjyrLncOkg lZSsVscFNgSzz03si3OtbP2s9J3r8itGKHY0GPq1bb9QElGQr3lFTLG3GZwzX3AWrWqy V3ynaJwB6NfXYPVr4eTZ7Qki+YLG2nUcdwpKYHxyNwaRKOIYFvT3vkLfwiJgbhPn3qlT 8Z2ytCI6Kr52/xp77EyCw4t7mZIPEXcxj4t1nn5eSY2F9kg9jVsSsSTC/KE3fUOxovjh pB3g== X-Forwarded-Encrypted: i=1; AJvYcCX9K3wCotxaQHREw7q4x7GmS/TaYW4g/XP3Fb6g0xzA5LXU0hfKZXcj1Mvaqhq+yXZMHdnyPhQ7RGQ=@lists.php.net X-Gm-Message-State: AOJu0Yy8TrMX8FO/nON6neeKDBnVxUwTb2xPW8z5xt8zs07C+/VvRAzV F5FyOwIr+dPU3A/0QcefDJ8hqd8q5V774JMdRTXVVQwDteOwkuAFEgO9YL6FC4JPYjfcVB8bPoy kUiPff1j89RkxOXf+xyCcwDaI+EOuSgY= X-Gm-Gg: ASbGnct4r/LfcRqXOdOl3SAiQnUPvj89ZIbNDBKC9yEbwYFWo3DZbA3+uJXIl+KbOQ9 BlldASXm8Q519/NF/MzwgFiJI00rhx5xeqjw6C5MMhHbjtjuD4/bJFslA74Sg4jrbwlRhvYecdR VaQoWDPNn/SLEXt7cMjm1VuTFdBT0/K6s5zj6nZIgkTIGam2g2LZta+PKQLlyfwhvGrKtzculex F/FXOYeGAZ1wvYfDN0Y/n4lBccG2HiyZpCJOC547+BYZsPNR7ocEKK1fS6Bf8nLoL8jWg== X-Google-Smtp-Source: AGHT+IE+ahDBjUTqg9qc4seO4mUE4ZF+deWT1FLuqQukPaEfS3CfCtmoEqJMECt2uWAAud2wU1hh6nA7ZxD80WMvQ2M= X-Received: by 2002:a05:6808:879a:b0:44f:7289:f4d0 with SMTP id 5614622812f47-451002ec7d1mr1589862b6e.67.1763653180584; Thu, 20 Nov 2025 07:39:40 -0800 (PST) Precedence: list list-help: list-unsubscribe: list-post: List-Id: x-ms-reactions: disallow MIME-Version: 1.0 References: In-Reply-To: Date: Thu, 20 Nov 2025 16:39:28 +0100 X-Gm-Features: AWmQ_bl5gjKbx5bbaY871yRYHNS2q8fIUEh6ctuvbgvtcME7baU87PamUKwZI58 Message-ID: Subject: Re: [PHP-DEV] [VOTE] True Async RFC 1.6 To: Deleu Cc: Daniil Gentili , internals@lists.php.net Content-Type: multipart/alternative; boundary="00000000000055f4120644088115" From: bukka@php.net (Jakub Zelenka) --00000000000055f4120644088115 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Nov 20, 2025 at 1:04=E2=80=AFPM Deleu wrote: > On Thu, 20 Nov 2025 at 07:21 Daniil Gentili > wrote: > >> Hi, >> >> >> Hello Bart. >> >> I am ready to agree with every word. >> >> >> >> Participation from a working group, framework representatives, and th= e >> >> 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 >> > 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 from >> > other projects involved. >> > >> >> My key takeaway from Bart's message is: >> >> > Moreover, even though 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 seem to be >> involved in discussing this RFC. >> > For an RFC that can drastically change the way we develop >> applications I would expect more experts on this matter to be involved. >> Ideally, PHP core developers, library developers & maintainers, IDE >> developers, ..., would develop software 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 >> around this RFC has been, in my opinion, mostly bikeshedding, with >> theoretical correctness proposals that are an absolute nightmare in >> practice (like structured concurrency), proposed by people that >> admittedly have never written extensive amounts of async code in >> languages using multiple paradigms, and thus haven't: >> >> - 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 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 >> championed by edmond) >> >> While a working group *can* steer the conversation away from >> theoretically 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 prese= nt >> - They are given more weight than the average PHP developer who hasn't >> used async much if at all, and can only make theoretical proposals not >> based on practice and experience >> >> I'm afraid that given the current state of the PHP community, which is >> largely new to async, the quality of the conversation in a working group >> would not be much higher than the one I'm seeing in this RFC, and would >> just protract even longer the agony of design by committee, where in >> reality what's needed is a single, clear and correct vision (which >> Edmond has), without influences from unexperienced people making >> proposals based purely on abstract/theoretical PoVs. >> >> Regards, >> >> Daniil Gentili. > > > While I certainly can sympathize with the painful, dreadful, unpleasant, > unbearable agony of debating a subject with =E2=80=9Cnon-experts=E2=80=9D= , it=E2=80=99s important > to have some perspective in the opposite direction. > > As it has been mentioned before, Async PHP in general is practically a > rounding error in terms of user base and there are reasons for that. It= =E2=80=99s > important to remember that the benefits of async doesn=E2=80=99t always j= ustify the > burden that it brings. For PHP as a language to adopt an async solution > natively it=E2=80=99s very important that sync code continues to function= while > also allowing developers to opt into async without having to feel like th= ey > changed languages and must re-learn how to manage their projects. If this > is not possible then perhaps the current state is as good as we can ever > get: let expert matter install their extension (opt-in) on a per-project > basis. > > It's going to be up to the subject experts to come up with a path that > allows PHP to stay coherent while offering both approaches. To put this i= n > another way: RFC Voters are above average PHP developers. If they're unab= le > to digest the changes being proposed, even if said changes are being > proposed by the single most subject-expert human on the planet, then how = do > we expect average PHP developers to make good use of it? > Yeah I think this is one of the reasons why the RFC failed. It couldn't properly explain the topic even though it was reduced to minimum. One of the factor is certainly that Edmond is new to the RFC process but more importantly it's quite contentious topic that can bring even more bike shedding. I think there were some important points raised in the discussions about safety of the existing sync code which I think might be the real killer here. So even if we omit the mix up with the pre-announcement and sudden voting (that were sure path to rejection), I think the bigger problem is the whole size of the feature and the fact that it will be extremely hard to find any solution that will please majority of voters. I'm honestly not sure if this is possible to get to any form that can pass. I would like to be wrong but we can see the reality here. I think the way forward for PHP is to do what we have been doing and it is to provide the building blocks for user space to enable async there because that's something that can be reasonably introduced using the RFC through smaller chunks. It means improving the non blocking setup, exposing IO hooks, better polling and other primitives. That was actually the plan in past and that's why it is also contained in my STF stream work where the scope was created way before the TrueAsync. Kind regards, Jakub --00000000000055f4120644088115 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Thu, Nov 20, 2025 at 1:04=E2=80=AFPM D= eleu <deleugyn@gmail.com> w= rote:
On Th= u, 20 Nov 2025 at 07:21 Daniil Gentili <daniil.gentili@gmail.com> wrote:
Hi,

>> 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 th= at
>> 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
> 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 = from
> other projects involved.
>

My key takeaway from Bart's message is:

=C2=A0> Moreover, even though there are quite a few people in the commun= ity
who have the knowledge required because they either develop or work with aforementioned libraries or extensions, (almost) none of them seem to be involved in discussing this RFC.
=C2=A0> For an RFC that can drastically change the way we develop
applications I would expect more experts on this matter to be involved. Ideally, PHP core developers, library developers & maintainers, IDE developers, ..., would develop software 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
around this RFC has been, in my opinion, mostly bikeshedding, with
theoretical correctness proposals that are an absolute nightmare in
practice (like structured concurrency), proposed by people that
admittedly have never written extensive amounts of async code in
languages using multiple paradigms, and thus haven't:

- 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 simplicit= y
of safely writing async code in languages like Go, or in PHP using AMPHP (which use uncolored and unstructured concurrency, the kind proposed and championed by edmond)

While a working group *can* steer the conversation away from
theoretically 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<= br> - They are given more weight than the average PHP developer who hasn't =
used async much if at all, and can only make theoretical proposals not
based on practice and experience

I'm afraid that given the current state of the PHP community, which is =
largely new to async, the quality of the conversation in a working group would not be much higher than the one I'm seeing in this RFC, and would=
just protract even longer the agony of design by committee, where in
reality what's needed is a single, clear and correct vision (which
Edmond has), without influences from unexperienced people making
proposals based purely on abstract/theoretical PoVs.

Regards,

Daniil Gentili.

= While I certainly can sympathize with the painful, dreadful, unpleasant, un= bearable agony of debating a subject with =E2=80=9Cnon-experts=E2=80=9D, it= =E2=80=99s important to have some perspective in the opposite direction.

As it has been mentioned b= efore, Async PHP in general is practically a rounding error in terms of use= r base and there are reasons for that. It=E2=80=99s important to remember t= hat the benefits of async doesn=E2=80=99t always justify the burden that it= brings. For PHP as a language to adopt an async solution natively it=E2=80= =99s very important that sync code continues to function while also allowin= g developers to opt into async without having to feel like they changed lan= guages and must re-learn how to manage their projects. If this is not possi= ble then perhaps the current state is as good as we can ever get: let exper= t matter install their extension (opt-in) on a per-project basis.

It's going to be up to the su= bject experts to come up with a path that allows PHP to stay coherent while= offering both approaches. To put this in another way: RFC Voters are above= average PHP developers. If they're unable to digest the changes being = proposed, even if said changes are being proposed by the single most subjec= t-expert human on the planet, then how do we expect average PHP developers = to make good use of it?

=
Yeah I think this is one of the reasons why the RFC failed. It couldn&= #39;t properly explain the topic even though it was reduced to minimum. One= of the factor is certainly that Edmond is new to the RFC process but more = importantly it's quite contentious topic that can bring even more bike = shedding. I think there were some important points raised in the discussion= s about safety of the existing sync code which I think might be the real ki= ller here. So even if we omit the mix up with the pre-announcement and sudd= en voting (that were sure path to rejection), I think the bigger problem is= the whole size of the feature and the fact that it will be extremely hard = to find any solution that will please majority of voters. I'm honestly = not sure if this is possible to get to any form that can pass. I would like= to be wrong but we can see the reality here.

I th= ink the way forward for PHP is to do what we have been doing and it is to p= rovide the building blocks for user space to enable async there because tha= t's something that can be reasonably introduced using the RFC through s= maller chunks. It means improving the non blocking setup, exposing IO hooks= , better polling and other primitives. That was actually the plan in past a= nd that's why it is also contained in my STF stream work where the scop= e was created way before the TrueAsync.

Kind regar= ds,

Jakub
--00000000000055f4120644088115--