nostr:npub1jx3dzll682rmfgzla5wwyjjsk5f05eml4845nrxvww3ulnt3shxqq0m6x6 Go also has a Mutex. Because a Mutex is more low level than a channel. Some things can't be done with channel or require a lot of copying/cloning. Yes, one could say that you should use channels by default, but in Rust, you don't have to use them to be able to right data race free concurrent programs.