Hello, Vincent. > The `spawn` keyword might disqualify this rfc, i talked to alot of php devs about this rfc and they all had a similar complaint about the keyword, maybe a keyword choice poll might help when the rfc voting goes live.
To have any kind of vote, we need multiple options. The keyword spawn is currently the best candidate. If you have a better one, I’m open to suggestions. > This whole rfc seem a little bit complex, which might ruin php codebase readability, let's keep things simple and concise, first impression matters for beginners and intermediate php programmers. I don’t understand how this RFC could make code harder to read. Can you give a specific example? And what exactly do you think would be difficult for beginner programmers? If you know a simpler way to express spawn function + await, I’m open to suggestions. > 3.) Let's not derive impression from java at this point, PHP might look similar to java but programmers hate java for a reason, overbloated way of doing simple things. First of all, I’m not taking inspiration from Java. This RFC is the result of a deep analysis of requirements, solutions, and implementation options — and I approach all of this primarily as a PHP developer, since PHP is where I have the most experience. I wouldn’t recommend paying attention to Java hate, because Java is one of the most widely used languages (probably second only to C). It’s a general-purpose language used across a broad range of domains. It’s also a language in which error research and use case studies are conducted — by some of the brightest minds. Ignoring the experience of Java just because of the illusion of “hate” would be shortsighted — that hate is more likely caused by the fact that there’s no such thing as a universal tool. As for Java Loom, its model is the closest to PHP — because of historical reasons. The second closest model is Python, which also has a similar history of adopting async features later. Both languages didn’t have built-in async from the beginning, which makes their experience particularly relevant to PHP. Go, on the other hand, was designed from the ground up for concurrency — that makes its lessons less applicable. And finally, the most important point: this RFC is exactly the way it is *because* it is designed for PHP, not for Java. For example, in Java you are always required to define a Scope. In Python, you always define a TaskGroup. Python has context managers to help simplify this. Java only offers explicit scope handling. This RFC gives developers the ability to write simple code without explicitly interacting with a Scope, while still benefiting from structured concurrency and coroutine control. And coroutine control is critical for frameworks and real-world projects. Without points of responsibility for control, you can’t write reliable PHP code or catch errors easily. If you think the Go approach is simpler — that’s a misconception. Go is not beginner-friendly. Go demands a deep understanding of async and strict discipline. Go and Rust developers (as shown in the study linked in the RFC) are very strict in their use of concurrency. PHP developers are used to a different style — PHP tends to forgive mistakes. Every part of this RFC exists not out of personal preference, but to solve real, practical problems. >