Go channels are bad and you should feel bad
The title’s a bit inflammatory, but the article itself is good. The headings mostly give a good summary:
- You probably won’t end up using just channels (due to dead goroutine leaks)
- Channels are slower than implementing it yourself
- Channels don’t compose well with other concurrency primitives
- Callbacks are strictly more powerful and don’t require unnecessary goroutines
- The channel API is inconsistent and just cray-cray
Also, linked half-duplex channels would be help the garbage collector, and it would be nice to be able to select
on condition variables.