Hello all.

If I had known that the vote would create such a hot day, I would have
started it even earlier :)
I will try to express in this message the same things I wrote in
private messages regarding how Async should be implemented in PHP.

How programming languages adopt such complex changes:

1. A working group is created to discuss a PreRFC.
2. A PreRFC is written, defining the project boundaries and
establishing its key principles.
3. The group refines the PreRFC until it is ready for a vote.
4. The community votes on the PreRFC, confirming that it agrees with
the basic principles and will support them in a future RFC vote.
5. An experimental phase is announced. From this moment, a special
build of the language is created, allowing anyone to try the new
features.
6. The working group continues integrating the new feature into major
frameworks and other important libraries.
7. After analyzing bugs and real-world issues discovered during
experimentation, the RFC is adjusted if necessary.
8. The RFC is voted on as final. The experimental phase ends, and the
changes become part of the permanent language release.

I have already proposed this to the PHP Foundation, and I am doing so
again. Why? Because I am 100% certain that the only way to implement
async in the language is by doing it together.
This is not just a nice phrase. It is the real situation.
PHP is a language with relatively limited funding and very few
resources. If these resources are scattered, there will be no result.

TrueAsync has two major goals that represent its most important values:

1. Creating a coherent infrastructure with a complete set of tools for
asynchronous programming. Yes, coroutines will run in a single thread.
For now, this is the most realistic goal.
2. Adapting the existing I/O functions for coroutines instead of
creating new ones.
(I can explain the second point with technical reasons if needed.)

If the PHP Foundation, PHP Core, AMPHP, ReactPHP, Swoole, Swow, and
framework representatives understand the value of these points and why
they are needed, and if there is a chance that we can reach this
vision, then the TrueAsync project has a chance to continue.

I do not believe that PHP can become better by splitting it into
subsystems. I do not believe that this would be successful.
If this happens, most likely everyone will lose.

This is not a question of whether Edmond is right or wrong. It does
not matter. This is a question of survival. I am not joking. And it is
not funny.
If anyone has illusions about a backend language without async
support, they will shatter sooner or later. You just have to wait.
But it seems to me that after these 3-4 years it is already clear what
is happening.
Do you need another 4 years? You do not have them.

So… as the great evolution teaches us: adapt.
If resources are limited, join forces.
These are simple laws of survival.

If principles like “It was not invented here” or “this cannot go into
our core” win over economic arguments, then the market will be taken
by those who adapt better.

Maybe discuss it publicly here.

P.S.
Actually, “TrueAsync” doesn’t sound dramatic enough.
The real name should be: **Blaaaaaaazing** TrueAsync :)

---
Edmond

Reply via email to