| ▲ | newpavlov 8 hours ago | |||||||||||||||||||||||||
In my (Rust-colored) opinion, the async keyword has two main problems: 1) It tracks code property which is usually omitted in sync code (i.e. most languages do not mark functions with "does IO"). Why IO is more important than "may panic", "uses bounded stack", "may perform allocations", etc.? 2) It implements an ad-hoc problem-specific effect system with various warts. And working around those warts requires re-implementation of half of the language. | ||||||||||||||||||||||||||
| ▲ | echelon 8 hours ago | parent [-] | |||||||||||||||||||||||||
> Why IO is more important than "may panic", "uses bounded stack", "may perform allocations", etc.? Rust could use these markers as well. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||