Jessica Kerr covers some of the concurrency tools existing in JVM languages including ExecutorService, Futures, Akka actors, and core.async coroutines, providing advice on writing deadlock-free code.
Daniel Pezely discusses the 10 fold performance increase of a Lisp and C system after rewriting it in Erlang, outlining where issues existed before and the design and implementation of the new system.
David Tanzer introduces Clojure and ClojureScript, discussing the language basics and some libraries useful for writing real applications.
Stuart Halloway discusses the design of core.async and some of its capabilities: channels, put and take, go blocks, alts! and alts!!, timeouts, showing their use through code.
Christophe Grand tells Clojure stories full of immutability, data over behavior, relational programming, declarativity, incrementalism, parallelism, collapsing abstractions, local state and more.
Thomas Kristensen describes the overall architecture of Composer, a system for composing musing, showing how to build a system that achieves responsiveness while still being flexible.
Robert Martin argues that Clojure is a replacement for C with its simple syntax and minimal semantics.
Mario Aquino discusses the structure and organization of Clojure's Lisp syntax as well as special forms in the language for declaring data structures.
Glen Peterson uses the Expression Problem to compare refactoring in Java, Scala and Clojure, showing how traits minimize changes in Scala when an interface changes and how Clojure avoids some issues.
Timothy Baldridge introduces Clojure’s Core.Async library, presenting the motivation behind the library and examples in Clojure and ClojureScript helpful to decouple subsystems in an application.
Stuart Sierra discusses various Clojure features: protocols, records, DI, managing startup/shutdown of components, dynamic binding, interactive development workflow, testing and mocking.
Stefan Chis demos building a Lisp dialect in Scala, covering: parsing code, defining data types and functions, evaluating expressions, implementing higher order functions.