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.
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.
Strangely, the replies naysaying don't really back anything up here, and well, the article's on medium, written by a Go newbie, who is frustrated with . I think 'nuff said.
exacube's comment below, as well as Ivan's on medium sum it up well. "Using channels in the simple cases where mutexes are just fine is a known gotcha for newcomers, discoverring Go concurrency model. But it’s well described in the official Wiki (MutexOrChannel), in the Effective Go on official Golang website, there are numeorus talks, it’s even in Go Proverbs: Channels orchestrate; mutexes serialize!"
7 comments
[ 2.9 ms ] story [ 20.5 ms ] threadI 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.
2) Don't use "considered harmful" so much; it is considered harmful.
exacube's comment below, as well as Ivan's on medium sum it up well. "Using channels in the simple cases where mutexes are just fine is a known gotcha for newcomers, discoverring Go concurrency model. But it’s well described in the official Wiki (MutexOrChannel), in the Effective Go on official Golang website, there are numeorus talks, it’s even in Go Proverbs: Channels orchestrate; mutexes serialize!"