On Mon, 6 Oct 2025, Larry Garfield wrote:

> On Mon, Oct 6, 2025, at 1:50 PM, Edmond Dantes wrote:
> 
> > Of course, you might say that there are simple websites for which FPM
> > is sufficient. But over the last two years, even for simple sites,
> > there’s TypeScript — and although its ecosystem may be weaker, the
> > language may be more complex for some people, and its performance
> > slightly worse — it comes with async, WebSockets, and a single
> > language for both frontend and backend out of the box (a killer
> > feature). And this trend is only going to grow stronger.
> >
> > Commercial development of mid-sized projects is the only niche that
> > cannot be lost. These guys need Event-Driven architecture, telemetry,
> > services. And they ask the question: why choose a language that
> > doesn’t support modern technologies. Async is needed specifically for
> > those technologies, not for FPM.
> 
> We must have a different definition of mid-sized, because FPM has been 
> used for numerous mission critical large sites, like government and 
> university sites, and has been fine.  And such sites still benefit 
> from faster telemetry, logging, etc.
> 
> Regardless, we can quibble about the percentages and what people 
> "should" do; those are all subjective debates.
> 
> The core point is this: Any async approach in core needs to treat the 
> FPM use case as a first-class citizen, which works the same way, just 
> as reliably, as it would in a persistent CLI command.  That is not 
> negotiable.
> 
> If for no other reason than avoiding splitting the ecosystem into 
> async/CLI and sync/FPM libraries, which would be an absolute disaster.

I also agree with this.

I tried reading the RFC today, but I ran out of time. It is *59* page 
printed (I didn't).

I think we need to be very careful that we do not introduce a feature 
that allows our users to run into all sorts of problems. The symantics 
of such a complex feature are going to be really important. Especially 
about reasoning in which direction the code runs and flows, and how 
errors are treated.

I recently read 
https://vorpus.org/blog/notes-on-structured-concurrency-or-go-statement-considered-harmful/
 
which seems like an entirely sensible way of proceeding. Although the 
title talks about Go and its problems, the "Structured Concurrency" 
approach is more of a way of doing concurrency right, without the 
possibility of our users getting into trouble.

I don't think the RFC as-is is close to this at all — but I have mostly 
skimmed it so far.

I would also believe that discussion how this should work would work 
better with a group of people - preferably in real-time - and not as an 
idea and implementation of a single person. I know others have been 
reviewing and commenting on it, but I don't think that's quite the same.

Concurrency in all its forms is a complex subject, and we can't really 
get this wrong as we'll have to live with the concepts for a long time.

cheers,
Derick

-- 
https://derickrethans.nl | https://xdebug.org | https://dram.io

Author of Xdebug. Like it? Consider supporting me: https://xdebug.org/support

mastodon: @[email protected] @[email protected]

Reply via email to