Yeah, bounded channels ended up being more effective as a hype mechanism than a great concurrency primitive, I would say. Coming from Go and kicking the tires a bit on Rust, I was impressed w/ how much nicer it was to write parallel code using Rust + the crossbeam library than Go.
At the end of the day Go's concurrency story is just traditional threads and mutexes, with custom syntax for one particular datastructure.
But, you do get a great runtime race detector & the M:N scheduler, so you can use lots of goroutines w/o blowing out memory, avoiding async hassles.
At the end of the day Go's concurrency story is just traditional threads and mutexes, with custom syntax for one particular datastructure.
But, you do get a great runtime race detector & the M:N scheduler, so you can use lots of goroutines w/o blowing out memory, avoiding async hassles.