Actually Java brought back the green threads model that it had before Go came to be.
The difference is that now red and green threads are exposed at the API level, and not an implementation detail.
Hardly copying Go.
Re:Google: Angular and Wiz Are Merging
by neonsunset on Thursday March 21, 2024 @12:27PM
(#39780736)
Quoting "colored functions" is a problem of skill. It is a tell of engineer's lack of understanding of concurrency.
Re:Google: Angular and Wiz Are Merging
by bheadmaster on Thursday March 21, 2024 @06:27PM
(#39785211)
Can you please elaborate why?
> but that's nearly 20 years after Go was released.
Go 1.0 was released in 2012.
The concurrency model basically came from Erlang, which in my opinion does it better.
Colored functions is only a problem in JS
And C#, Python, Rust...
You can de-color an async function by blocking.
Re:Google: Angular and Wiz Are Merging
by bheadmaster on Thursday March 21, 2024 @06:27PM
(#39785207)
In most implementations, blocking in an async function has unintended side effect of blocking all other async function running on the same executor.
Re:Google: Angular and Wiz Are Merging
by neonsunset on Thursday March 21, 2024 @08:28PM
(#39786142)
It's not the case in C#. It is discouraged, but mainly because there just used to be so much sloppily written async code that managed to bring down threadpool to its knees despite hillclimbing and blocked threads detection doing a lot of heavy lifting, so the community has grown scar tissue against this. It's rarely an issue if ever in the last 5 years or so.
Re:Google: Angular and Wiz Are Merging
by bheadmaster on Thursday March 21, 2024 @10:17AM
(#39778788)
And Python... And Rust... And C#...
Java has just copied some parts of how concurrency works in Go, but that's nearly 20 years after Go was released.
It's extremely easy to start up code concurrently with "go foo()". You can start up lots of such functions concurrently, as it works in userspace. Like async code, but no "colored functions" problem.