I guess the grass is always greener on the other side. As a Rust user, I’m constantly thinking “why didn’t they just give us go channels instead of this crazy async/await nonsense?”
Because one crate uses one channel implementation, and another crate uses a different one… this is really something that should be solved at the language / stdlib level, as Go does, but Rust falls a little bit short. There mpmc and the Send trait, but they alone are insufficient. So instead we get crate dependency hell that is only somewhat mitigated by cargo, and colored functions due to the async implementation.