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
220
Talking SQL to Strangers
kachayev
3
490
Counting HTTP: 0.9...3
kachayev
1
60
Managing Data Chaos in The World of Microservices
kachayev
3
590
Deep HTTP Dive Through Aleph & Netty
kachayev
6
3.6k
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
マルチモジュールにおけるテスト最適化
fxwx23
0
210
Developer Joy == Developer Productivity (really!)
hollycummins
1
220
Using Livebook to build and deploy internal tools @ ElixirConf 2024
hugobarauna
0
250
事業フェーズの変化に対応する 開発生産性向上のゼロイチ
masaygggg
0
200
状態管理ライブラリZustandの導入から運用まで
k1tikurisu
3
470
How to Break into Reading Open Source
kaspth
2
220
はじめてみよう量子プログラミング
itokoichi01
0
210
LangChainの現在とv0.3にむけて
os1ma
4
930
実践!難読化ガイド
mitchan
0
210
Go1.23で入った errorsパッケージの小さなアプデ
kuro_kurorrr
2
390
API Platform for Laravel
dunglas
1
430
o1モデルのプロンプトエンジニアリングって?
ktc_wada
0
270
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
53
8.9k
Happy Clients
brianwarren
96
6.6k
In The Pink: A Labor of Love
frogandcode
139
22k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
109
6.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
Automating Front-end Workflow
addyosmani
1365
200k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Code Reviewing Like a Champion
maltzj
517
39k
A Philosophy of Restraint
colly
202
16k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
43
2k
Producing Creativity
orderedlist
PRO
340
39k
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