I imagine Rust to be a language far more similar to Go, in both use cases and functionality, than JS.
I imagine Rust to be a language far more similar to Go, in both use cases and functionality, than JS.
It's great, but message passing it is not.
If you haven't seen this paper, I bet you'll find at least one or two new bugs that you didn't know about: https://songlh.github.io/paper/go-study.pdf
In most languages, current for loop value is always accessed a variable, not a reference. The only languages where it's not the case that I know of are Go and Python (JavaScript used to also have this problem with for(var ...), it was fixed with for(let ...)). So if you don't regularly write Go, it's easy to make this mistake.
Rust gives you channels (both synchronous blocking channels and async channels), and they work great, there is nothing stopping you from using them.
I mostly agree. But I would wager that for a significant amount of people their first exposure to "async" is JS and not any number of other languages. And when you try to write async Rust the same way as you might write async JS, things just aren't that pretty.