0:00 / 0:00
"Clojure core.async" by Rich Hickey (2013)
Strange Loop Conference
88K subscribers • 110 videos on Hallway • Conference channel
- Recommended by 1 person: 1 in engineering communities.
- Presented by Rich Hickey, creator of Clojure
Intermediate. Assumes working knowledge.
9.3K views5 years ago1 recommendation
Programming languagesSoftware designLisp and ClojureConcurrency and parallelismSoftware architecture
Rich Hickey explains the motivation, design, and implementation of the core.async library for asynchronous programming and CSP in Clojure.
There comes a time in all good programs when components or subsystems must stop communicating directly with one another. This is often achieved via the introduction of queues between the producers of data and the consumers/processors of that data. This architectural indirection ensures that important decisions can be made with some degree of independence, and leads to systems that are easier to understand, manage, monitor and change, and make better use of computational resources, etc. The objectives of core.async are: - To provide facilities for independent threads of activity, communicating via queue-like channels. - To support both real threads and shared use of thread pools (in any combination), as well as ClojureScript on JS engines. - To build upon the work done on CSP and its derivatives, e.g. Java CSP and the Go programming language. This talk will cover the motivation, design and use of the new Clojure core.async library. Rich Hickey Cognitect @richhickey Rich Hickey, the author of Clojure and designer of Datomic, is a software developer with over 20 years of experience in various domains. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages. Recorded at Strange Loop conference (thestrangeloop.com) in St. Louis, MO, Oct 2013.Why it's here
1 person recommends thisWhat people say. Recommended as the definitive explanation of Clojure's core.async and CSP-based concurrency model.