Origins of Go Concurrency style by Rob Pike
jasonofthel33tRecommended by 3 HN commenters across 3 months, 2013–2025
talk · intermediate · evergreen · 2013–2025 on HN
Rob Pike's 2010 talk at OSCON's Emerging Languages Camp on where Go's concurrency style comes from. It traces the idea from Hoare's CSP through Squeak, Newsqueak and Limbo to Go.
HN recommends it as the clearest account of the CSP lineage behind Go's goroutines and channels.
Up next
12 mo on HNLexical Scanning in Go - Rob Pike
GoogleFOSSSydney
Recommended 13× on HN · 2012–2025
9 mo on HNGoogle I/O 2012 - Go Concurrency Patterns
Google for Developers
Recommended 9× on HN · 2012–2025
2 mo on HNHow Analog Color TV Works: The Beginnings
Technology Connections
Recommended 2× on HN · 2019–2026
2 mo on HNPitfall: A Classic Game Postmortem
GDC Festival of Gaming
Recommended 2× on HN · 2021–2024
11 mo on HNCppCon 2015: Andrei Alexandrescu “std::allocator...”
CppCon
Recommended 7× on HN · 2017–2025
10 mo on HNCppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”
CppCon
Recommended 9× on HN · 2018–2026
9 mo on HNRustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
Recommended 9× on HN · 2018–2023
10 mo on HNCppCon 2016: Jason Turner “Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17”
CppCon
Recommended 13× on HN · 2016–2024
9 mo on HNIdeas about a new programming language for games.
Jonathan Blow
Recommended 7× on HN · 2014–2025
9 mo on HNCppCon 2014: Mike Acton "Data-Oriented Design and C++"
CppCon
Recommended 9× on HN · 2015–2026
9 mo on HNHow I program C
Eskil Steenberg
Recommended 8× on HN · 2017–2025
7 mo on HNCppCon 2015: Kate Gregory “Stop Teaching C"
CppCon
Recommended 7× on HN · 2016–2025
6 comments from Hacker News
Squeak was the inspiration for Newsqueak by Rob Pike, co-author of Golang. A lot of the concurrency ideas can be traced to this timeline, some fascinating stuff there. Check out this video by Pike: ▶ this video .
The Blit video he mentions: link A similarly interesting talk by him on CSP-inspired languages (Occam, Erlang, Squeak, Newsqueak, Limbo, Alef, Go): ▶ this video Slides (not shown in the video): link Interesting as well: From parellel to concurrent (on Sawzall and Go): link
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 - ▶ this video Lexical Scanning in Go - link Go Concurrency Patterns (One of my favorites) - link
I can't substantiate your claim about Erlang or weird syntax, is that either a proper quote or some kind of paraphrasing because nothing remotely close to it comes up. There are numerous interviews with Rob Pike about the design of Go from when Go was still being developed, and Erlang doesn't come up in anything that I can find other than this interview from 2010 where someone asks Rob Pike a question involving Erlang and Rob replies by saying he thinks the two languages have a different approach to are fairly different: ▶ this video It's at the 32 minute mark, but once again this is in response to someone asking a question. Here are other interviews about Go, and once again in almost every interview I'd say Rob kind of insinuates he was motivated by a dislike of using C++ within Google to write highly parallel services, but not once is Erlang ever mentioned: link link link
Intersting talk. Here are some other talks about the history and origins of Go: Evolution of Go (Griesemer, GopherCon 2015) Video: link Slides: link Origins of Go Concurrency (Rob Pike, OSCON 2010) Video: ▶ this video Slides: link
I'm not sure who "they" are, but certainly not the core development team, and Samuel Tesla does not represent them. See for example Rob Pike saying how mind blowing and inspiring Tony Hoare's CSP paper is, how everyone should read it and how it inspired Go[1]. Another example is how Go's regexp implementation has a solid mathematical foundation[2]. Now, those are two examples of quite old programming research being used to good effect in Go, so there is an opening for criticism there. But in general I'm pretty sure the core go devs don't have have anything against programming research nor try to create this false dichotomy. [1] ▶ this video [2] link