Golang Concurrency Design Considered Harmful
medium.com'Considered Harmful' Headlines Considered Harmful
I love how everyone can write a 'Considered Harmful' headline by figuring out something along the line of "I don't like it, therefore it must be bad, therefore I consider it harmful".
It's time to stop. This stopped being funny months ago.
There is a difference between having serious flaws and not liking it. Go's idiomatic concurrency is in the first camp and should be considered harmful.
Years ago
1) using channels + goroutine to implement a map doesn't seem like the most sensible thing to do; even golang's new sync.Map type is implemented with mutexs (eg https://github.com/golang/sync/blob/master/syncmap/map.go#L2...). Idiomatic doesn't mean ALWAYS do this no matter what; it is the natural thing to do if it feels like the right approach.
2) Don't use "considered harmful" so much; it is considered harmful.