Multithreading is not the only approach we use to deal with concurrency. Single-purpose processes is our next frontier. Processes, that don`t have shared state. To coordinate, they pass messages to each other.
We can build complex concurrent systems using simple principles of CSP or Actors model. We break down programs into independent processes, each performing some specific job, talking to each other. How they talk to each is the point of contention here. That`s where the differences between CSP and Actors arise.
Host: Andrey Salomatin flpvsk.com
Guests
- Aaron Schlesinger arschles.com/
- Jörgen Brandt http://www.joergen-brandt.de/
Sources
CSP
- “Communicating Sequential Processes” orignial paper by C. A. R.
Hoarek
http://www.usingcsp.com/ cspbook.pdf
Go
- “Go in 5 minutes” screencast by Aaron
https://www.youtube.com/channel/UC2GHqYE3fVJMncbrRd8AqcA - “Effective Go”
https://golang.org/doc/effective_go.html - “Go Concurrency Patterns” talk by Rob Pike
https://talks.golang.org/2012/concurrency.slide#1 - net/context documentation
https://godoc.org/golang.org/x/net/context - WebSockets documentation
https://godoc.org/golang.org/x/net/websocket
Actors
- “A Universal Modular Actor Formalism for Artificial Intelligence”
original paper by Carl Hewitt; Peter Bishop; Richard Steiger
http://worrydream.com/refs/Hewitt-ActorModel.pdf
Erlang
- “Learn You Some Erlang for great good!” by Fred Hébert
http://learnyousomeerlang.com/ - “Programming Erlang” by Joe Armstrong
http://amzn.to/1UnfJpB
Projects to check out
Go
- Docker
https://github.com/docker/docker - “Awesome Go” – a curated list of awesome Go frameworks, libraries and
software
https://github.com/avelino/awesome-go
Parallelism
- Cuneiform
http://www.cuneiform-lang.org/
Music
Mid-Air! @mid_air
PS: Links to Amazon are referral. You can use them to support the show.