This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-01-16
Channels
- # beginners (115)
- # boot (13)
- # boot-dev (13)
- # chestnut (1)
- # cider (1)
- # clara (10)
- # cljs-dev (21)
- # cljsjs (1)
- # cljsrn (2)
- # clojure (120)
- # clojure-dusseldorf (2)
- # clojure-greece (13)
- # clojure-ireland (1)
- # clojure-italy (3)
- # clojure-nlp (3)
- # clojure-russia (2)
- # clojure-spec (13)
- # clojure-uk (82)
- # clojured (5)
- # clojurescript (47)
- # core-async (2)
- # core-logic (8)
- # cursive (45)
- # datomic (2)
- # editors (1)
- # emacs (39)
- # fulcro (166)
- # graphql (1)
- # hoplon (16)
- # keechma (5)
- # off-topic (202)
- # perun (4)
- # protorepl (7)
- # re-frame (28)
- # reagent (13)
- # ring (27)
- # ring-swagger (16)
- # rum (1)
- # shadow-cljs (25)
- # spacemacs (20)
- # sql (141)
- # yada (4)
Here’s a great video on Kotlin coroutines by the main developer: https://www.youtube.com/watch?v=_hfBv0a09Jc&t=2422s
I find many similarities w/ core.async
that helped me understand the motivation behind concurrency and how core.async
works. Like core.async
, most of Kotlin’s concurrency is implemented as a library (IIUC only coroutines require a change to the runtime), so many similar design decisions seem to have been made.
This related video explicitly lays out how suspending a block creates a continuation of the remaining operations: https://youtu.be/4W3ruTWUhpw. IIUC core.async
uses a state machine instead of CPS, but conceptually I found this very helpful.
Yep, the CPS method was considered, but it does have GC implications