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.7k
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
2
270
Talking SQL to Strangers
kachayev
3
560
Counting HTTP: 0.9...3
kachayev
1
81
Managing Data Chaos in The World of Microservices
kachayev
3
650
Deep HTTP Dive Through Aleph & Netty
kachayev
6
3.8k
Keep Your Data Safe With Refined Types
kachayev
4
1.4k
Clojure at Attendify (2nd ed)
kachayev
5
1.6k
Clojure at Attendify
kachayev
4
340
Finagle & Clojure
kachayev
6
1.3k
Other Decks in Programming
See All in Programming
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
770
Deep Dive into ~/.claude/projects
hiragram
14
2.5k
Discover Metal 4
rei315
2
130
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1k
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
170
NPOでのDevinの活用
codeforeveryone
0
840
効率的な開発手段として VRTを活用する
ishkawa
0
140
なぜ適用するか、移行して理解するClean Architecture 〜構造を超えて設計を継承する〜 / Why Apply, Migrate and Understand Clean Architecture - Inherit Design Beyond Structure
seike460
PRO
3
770
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
190
生成AI時代のコンポーネントライブラリの作り方
touyou
1
210
10 Costly Database Performance Mistakes (And How To Fix Them)
andyatkinson
0
340
ふつうの技術スタックでアート作品を作ってみる
akira888
1
850
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
35
6.7k
KATA
mclloyd
30
14k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Become a Pro
speakerdeck
PRO
29
5.4k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Unsuck your backbone
ammeep
671
58k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
How GitHub (no longer) Works
holman
314
140k
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