Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Channels & concurrency 2013 (c) Alexey Kachayev
Slide 2
Slide 2 text
Channels Idea
Slide 3
Slide 3 text
Idea •Hoare’s CSP •Erlang / Limbo / etc •Transport level •File name / File descriptor •Message Box / Queue
Slide 4
Slide 4 text
Channels Go(lang)
Slide 5
Slide 5 text
Go
Slide 6
Slide 6 text
Go (1)
Slide 7
Slide 7 text
Go (2)
Slide 8
Slide 8 text
Go (2) fan-out fan-in timeout
Slide 9
Slide 9 text
Channels Clojure
Slide 10
Slide 10 text
Clojure Alexey Kachayev, https://gist.github.com/kachayev/3146759
Slide 11
Slide 11 text
Clojure
Slide 12
Slide 12 text
Clojure
Slide 13
Slide 13 text
Clojure
Slide 14
Slide 14 text
Clojure Michael Peterson, https://github.com/midpeter444/go-lightly
Slide 15
Slide 15 text
Clojure
Slide 16
Slide 16 text
Clojure core.async
Slide 17
Slide 17 text
Idea •Library (just) •(chan) •Blocking •Buffers •(go) macros •Deadlocks (?!?)
Slide 18
Slide 18 text
Clojure
Slide 19
Slide 19 text
Clojure
Slide 20
Slide 20 text
Channels dig deeper
Slide 21
Slide 21 text
Why? •Streams •Decoupling •Composability •Patterns
Slide 22
Slide 22 text
Channels Concurrent ML
Slide 23
Slide 23 text
CML
Slide 24
Slide 24 text
Channels Erlang & composability
Slide 25
Slide 25 text
Channels: Erlang https://gist.github.com/kachayev/5426175
Slide 26
Slide 26 text
Idea •map •filter •fork •zip, zipwith •take, drop •etc
Slide 27
Slide 27 text
Erlang
Slide 28
Slide 28 text
Erlang
Slide 29
Slide 29 text
Erlang
Slide 30
Slide 30 text
Erlang futures?
Slide 31
Slide 31 text
Erlang
Slide 32
Slide 32 text
Erlang
Slide 33
Slide 33 text
Channels Scala & Eventsourced
Slide 34
Slide 34 text
Scala
Slide 35
Slide 35 text
Scala channel
Slide 36
Slide 36 text
Channels Cloud Haskell & Types
Slide 37
Slide 37 text
Haskell
Slide 38
Slide 38 text
Haskell channel
Slide 39
Slide 39 text
Contacts twi: @kachayev github: @kachayev work: attendify.com