Live data from Hacker News

Why asynchronous Rust doesn't work

eta.st

11–20 of 305 posts

Re: Why asynchronous Rust doesn't work

#12
post #6

In summary asynchronous programming without a GC is a pain in the a*. That's somewhat expected isn't it?

It’s a pain with GC as well, coming from a C# background. It’s incredibly easy to write something that intermittently doesn’t work in weird and impossible to debug ways.

Re: Why asynchronous Rust doesn't work

#13
Excellent post. Async ruins everything even in GC languages. It's just making things needlessly hard for programmers in an attempt to save effort from computers. Erlang shows how to do massive scales of slow IO if you really need it (most programs don't).

Re: Why asynchronous Rust doesn't work

#14

Guess I'll just go back to erlang.....

There is also a actor pattern implementation for Rust: https://actix.rs/

But yeah, the way Erlang embededded the actor pattern in the VM (Beam) and the language itself is great.

Tough personally I would have liked it if it was more statically typed. I still need to take a look at Gleam...

Re: Why asynchronous Rust doesn't work

#15
It was heavily discussed previously. In particular, it triggered this response from Rust contributor withoutboats: https://news.ycombinator.com/item?id=26410487

And this blog post from someone who did spend a lot of time working with async rust: https://tomaka.medium.com/a-look-back-at-asynchronous-rust-d...

Re: Why asynchronous Rust doesn't work

#16
Have to day, mixing async and CPU intensive code (I’m using Rust because it is good at CPU intensive code!) has been a frustrating experience, with lots of noise and baggage associated with spawn_blocking to make things run well.

Re: Why asynchronous Rust doesn't work

#17
post #13

Excellent post. Async ruins everything even in GC languages. It's just making things needlessly hard for programmers in an attempt to save effort from computers. Erlang shows how to do massive scales of slow IO if you really need it (most programs don't).

> It's just making things needlessly hard for programmers in an attempt to save effort from computers.

Well actually it is supposed to make concurrency easier for programmers.

What would you say is an "easy" way to deal with concurrency? Handle threading, memory visibility issues, locking, etc yourself? Doing it "reactive"? I guess personally I too would say something messaging based such as the actor pattern but not everything is a good fit for that model.

Async is intended to be a more generic (ie. fit for everything) and easy way to program. I'm not saying it succeeds in that but the goal wasn't to save the computer the effort.

Re: Why asynchronous Rust doesn't work

#18
post #13

Excellent post. Async ruins everything even in GC languages. It's just making things needlessly hard for programmers in an attempt to save effort from computers. Erlang shows how to do massive scales of slow IO if you really need it (most programs don't).

> Async ruins everything even in GC languages

Except Rust has no GC…

Re: Why asynchronous Rust doesn't work

#19

Guess I'll just go back to erlang.....

There is also a actor pattern implementation for Rust: https://actix.rs/ But yeah, the way Erlang embededded the actor pattern in the VM (Beam) and the language itself is great. Tough personally I would have liked it if it was more statically typed. I still need to take a look at Gleam...

There is also Caramel[0].

[0]: https://caramel.run/

Re: Why asynchronous Rust doesn't work

#20
post #13

Excellent post. Async ruins everything even in GC languages. It's just making things needlessly hard for programmers in an attempt to save effort from computers. Erlang shows how to do massive scales of slow IO if you really need it (most programs don't).

Hold on now. Even in GC’ed languages? Which ones?

It is another programming paradigm. It has its uses. It has its drawbacks.

“Ruining everything” is a big stretch.

Post reply on HN