Async Rust Is A Bad Language

Async Rust exists to address the challenges of modern concurrency. As computers have multiple cores and slow I/O operations, we want to utilize the entire machine and keep working while waiting for tasks to complete. Concurrency involves breaking a problem into independent parts, which can then run in parallel. One approach to achieve concurrency is to use threads, but this can lead to issues like race conditions and deadlocks. Another approach is using channels to connect threads and send messages, as suggested by Tony Hoare. Many languages provide channels in their standard library, including Rust. However, for highly concurrent tasks, traditional threads may not be sufficient, and a different approach like async/await is needed. Async Rust attempts to offer a powerful abstraction while still giving the programmer low-level control, but it comes with challenges related to lifetimes and data synchronization. The use of Arc (atomic reference counters) can solve some of these issues, but it comes with downsides like the lack of a garbage collector. Async Rust is different from normal Rust, with more complexity and challenges. While some argue that these concerns are overblown, they can pose difficulties for developers, especially those new to Rust. Comparing Rust to languages like Haskell or Go, where async code is more straightforward,

https://bitbashing.io/async-rust.html

To top