A rambling discussion with two village idiots struggling to come to terms with concurrency and parallelism
- Thanks again for Micha and his nukes doing a great job on the last episode.
- A small diversion into the delights of Java 8 interop wherein we mention the nice little library by Mr Andrew Oberstar called ike:
News & Events
- Defn will be at Euroclojure: we would like to organise a meetup, ideas will be discussed on the Slack channel
- SEPT 2016: CLOJUTRE is happening September 10th – Tampere, Finland
- OCT 2016: Euroclojure – October 25-26 – Bratislava, Slovakia
- The Call for Presentations is extended until Aug 5th!
- DEC 2016: Clojure-eXchange – 1st and 2nd December – London, Brexit
- Call for Presentations is also open until Aug 5th
Main discussion – Concurrency and Parallelism
- Things can happen at the same time – shocker! 😉
- Concurrency – systems can be composed up from asynchronous actions – event driven!!
- increases the amount of work that can be done on single threaded environments or single core machines
- callbacks traditionally makes programming awkward … there is a loss of comprehension, error handling is a big problem since callbacks do not retain the original context
- Parallelism – problems are decomposed into discrete tasks or actions to fulfil a defined goal
- usually only worth doing if the underlying hardware can run tasks in parallel
- this increases the amount of work that can be done on multi-threaded environments or multi-core / CPU / GPU machines
- Major innovations in Clojure
- Handling shared state – Dynamic Vars / Atoms / Refs / Agents
- Concurrency … core.async
- Manifold and Aleph – Mr Zach Tellman – Lingua franca for asynchron
- Parallelism … reducers
Music: Thanks to the very talented ptzery for the permitting us to use his music on the opening and closing of the podcast. This track is Melon Hamburger. You can give his work some ❤️ and hear more on his SoundCloud.