Google I/O 2012 - Go Concurrency Patterns
Why Hacker News recommends it
The canonical recommendation for learning Go concurrency, praised as entertaining and clarifying when to use channels versus mutexes.
What it is
Rob Pike's Google I/O 2012 talk shows how goroutines and channels solve tricky concurrency problems with simple Go code. It features a playful goroutine demo with gophers passing messages and a search engine example.
Recommended by 9 HN commenters across 9 different months, 2012 to 2025.
What Hacker News said
Strong rec mseepgood · 2012-07 · on “Having a Go - first time experience with Golang”
Great talk by Rob Pike: [this video] "Go Concurrency Patterns" with cute little gophers playing Chinese whispers with megaphones
Strong rec canthonytucci · 2013-09 · on “Less is exponentially more (2012)”
For those who don't know who Rob Pike is, he's pretty awesome, helped create UTF-8 among other things, and now works on Go. [LINK] He has given some really great Go talks which are available on youtube, about an hour each: Origins of Go Concurrency Style - [LINK] Lexical Scanning in Go - [LINK] Go Concurrency Patterns (One of my favorites) - [this video]
Recommends luriel · 2012-07 · on “Golang at CloudFlare”
In one word: channels. They might be theoretically equivalent to some degree, but in practice they are quite different, and I find reasoning about both concurrency and parallelism using goroutines and channels much more natural. Also see this talk by Rob Pike on the origins of Go's concurrency model here: [LINK] See also this article by Russ Cox about CSP: [LINK] And Rob Pike's latest talk about concurrency patterns at Google IO last week: [this video]
Recommends mseepgood · 2013-04 · on “Why Node and Scala will dry up: Go will drink their milkshake”
I'm a fan of Go, but this is not a very good talk. The first half is unnecessary trolling, and the second half is based on some code snippets taken from Rob Pike's "Go Concurrency Patterns", but in this case badly presented. So I prefer the original: [this video]
Recommends danneu · 2013-07 · on “ClojureScript Core.async Todos”
You're responding to: > Clojurescript is the browser language I always > wanted. JS seems like such a hack. You're getting downvoted for reading into someone's enthusiastic personal endorsement and then ending it with the tiring "Tell me something good about <thing I refuse to read or understand on my own time but I'll partake in discussion anyways>...". Start with Rob Pike's "Go Concurrency Patterns" ( [this video] )
Recommends aray · 2014-03 · on “Go Concurrency Patterns: Pipelines and cancellation”
Great explanation in document form of these patterns. Also very succinct and easy to reference. For those that would rather read this in presentation form: [LINK] And for those that would rather watch a video presentation: [this video]
Recommends srcreigh · 2014-06 · on “Go support for Android”
In my experience with Android apps, I've almost never had to use the NDK. When I did have to use the NDK, it wasn't because I wanted to code in C/C++---it was because there were strong, open-source libraries written in C/C++ that I wanted to use in an app (Though, I have no experience making games on Android). If you want to check out Go, then the Go Tour [1] and the various talks by Rob Pike [2] [3] / Sameer Ajmani [4] are great resources. The Go Tour stands on its own as an interest-building resource; the several programming exercises it has you do are fun and challenging. [1]: [LINK] [2]: [this video] [3]: [LINK] [4]: [LINK]
Recommends staunch · 2018-08 · on “Ask HN: Concurrency in Go vs. C/C++”
Rob Pike did a number of interesting talks on concurrency in Go. If you search "Go concurrency" on YouTube there are more good talks. Go Concurrency Patterns [this video] Concurrency Is Not Parallelism [LINK]