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
4.9k
9
Share
Channels & Concurrency: Go, Clojure, Erlang, Haskell
The idea, benefits, theory and practise.
Oleksii Kachaiev
August 03, 2013
More Decks by Oleksii Kachaiev
See All by Oleksii Kachaiev
Counting HTTP with QUIC & HTTP/3
kachayev
2
310
Talking SQL to Strangers
kachayev
3
630
Counting HTTP: 0.9...3
kachayev
1
130
Managing Data Chaos in The World of Microservices
kachayev
3
700
Deep HTTP Dive Through Aleph & Netty
kachayev
6
4k
Keep Your Data Safe With Refined Types
kachayev
4
1.5k
Clojure at Attendify (2nd ed)
kachayev
5
1.7k
Clojure at Attendify
kachayev
4
390
Finagle & Clojure
kachayev
6
1.4k
Other Decks in Programming
See All in Programming
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
220
LLM Plugin for Node-REDの利用方法と開発について
404background
0
160
エージェンティックRAGにAWSで入門しよう!
har1101
7
1k
AIエージェントの隔離技術の徹底比較
kawayu
0
460
Oxlintのカスタムルールの現況
syumai
5
1k
JavaDoc 再入門
nagise
0
280
3Dシーンの圧縮
fadis
1
640
oxlintはeslint/typescript-eslintを置き換えられるのか
shomafujita
2
320
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
2.3k
net-httpのHTTP/2対応について
naruse
0
440
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
0
130
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.3k
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
174
15k
Paper Plane (Part 1)
katiecoart
PRO
0
8.5k
Ruling the World: When Life Gets Gamed
codingconduct
0
240
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
170
Leo the Paperboy
mayatellez
7
1.8k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
480
Game over? The fight for quality and originality in the time of robots
wayneb77
1
190
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
The SEO identity crisis: Don't let AI make you average
varn
0
480
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
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