Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Channels & Concurrency: Go, Clojure, Erlang, Ha...
Search
Oleksii Kachaiev
August 03, 2013
Programming
9
4.6k
Channels & Concurrency: Go, Clojure, Erlang, Haskell
The idea, benefits, theory and practise.
Oleksii Kachaiev
August 03, 2013
Tweet
Share
More Decks by Oleksii Kachaiev
See All by Oleksii Kachaiev
Counting HTTP with QUIC & HTTP/3
kachayev
1
230
Talking SQL to Strangers
kachayev
3
510
Counting HTTP: 0.9...3
kachayev
1
60
Managing Data Chaos in The World of Microservices
kachayev
3
620
Deep HTTP Dive Through Aleph & Netty
kachayev
6
3.7k
Keep Your Data Safe With Refined Types
kachayev
4
1.4k
Clojure at Attendify (2nd ed)
kachayev
5
1.5k
Clojure at Attendify
kachayev
4
310
Finagle & Clojure
kachayev
6
1.3k
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
230
CSC305 Lecture 25
javiergs
PRO
0
130
Cloudflare MCP ServerでClaude Desktop からWeb APIを構築
kutakutat
1
530
rails stats で紐解く ANDPAD のイマを支える技術たち
andpad
1
290
ゆるやかにgolangci-lintのルールを強くする / Kyoto.go #56
utgwkk
1
360
Full stack testing :: basic to basic
up1
1
930
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
450
わたしの星のままで一番星になる ~ 出産を機にSIerからEC事業会社に転職した話 ~
kimura_m_29
0
180
急成長期の品質とスピードを両立するフロントエンド技術基盤
soarteclab
0
920
return文におけるstd::moveについて
onihusube
1
780
暇に任せてProxmoxコンソール 作ってみました
karugamo
1
720
Go の GC の不得意な部分を克服したい
taiyow
2
760
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
KATA
mclloyd
29
14k
Reflections from 52 weeks, 52 projects
jeffersonlam
347
20k
The Invisible Side of Design
smashingmag
298
50k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
It's Worth the Effort
3n
183
28k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Docker and Python
trallard
41
3.1k
A Philosophy of Restraint
colly
203
16k
Done Done
chrislema
181
16k
Transcript
Channels & concurrency 2013 (c) Alexey Kachayev
Channels Idea
Idea •Hoare’s CSP •Erlang / Limbo / etc •Transport level
•File name / File descriptor •Message Box / Queue
Channels Go(lang)
Go
Go (1)
Go (2)
Go (2) fan-out fan-in timeout
Channels Clojure
Clojure Alexey Kachayev, https://gist.github.com/kachayev/3146759
Clojure
Clojure
Clojure
Clojure Michael Peterson, https://github.com/midpeter444/go-lightly
Clojure
Clojure core.async
Idea •Library (just) •(chan) •Blocking •Buffers •(go) macros •Deadlocks (?!?)
Clojure
Clojure
Channels dig deeper
Why? •Streams •Decoupling •Composability •Patterns
Channels Concurrent ML
CML
Channels Erlang & composability
Channels: Erlang https://gist.github.com/kachayev/5426175
Idea •map •filter •fork •zip, zipwith •take, drop •etc
Erlang
Erlang
Erlang
Erlang futures?
Erlang
Erlang
Channels Scala & Eventsourced
Scala
Scala channel
Channels Cloud Haskell & Types
Haskell
Haskell channel
Contacts twi: @kachayev github: @kachayev work: attendify.com