u/dustingetzin r/Clojure • Recommends
Evolving Clojure with Java’s Virtual Threads — Alex Miller — JVM Language Summit 2025
#clojure#virtualthreads#core.async
276K subscribers • 13 videos on Hallway
Advanced. Deep dive for people who know the field.
6.7K views1 year ago2 recommendations
Programming languagesSystems programmingLisp and ClojureConcurrency and parallelismPerformance and optimization
Alex Miller explains how Clojure's core.async library is evolving to leverage Java virtual threads while preserving backward compatibility.
Clojure’s core.async library brought Go-style CSP concurrency to both the JVM (and JS!) by transforming code into state machines via the `go` macro, allowing process pausing at channel operations like ⟨!, ⟩!, and alt! (as an expression, not a statement, as in Go). This transformation enabled asynchronous workflows and "select" without a central coordinator, but came at the cost of maintaining two complex and evolving versions of the Clojure analyzer. With the arrival of Java virtual threads, a new implementation of core.async is emerging-—one that retains the same semantics and API but leverages virtual threads to implement process supsension. This talk will explore the design choices behind supporting both implementations, and how we preserved backward compatibility. Introducing virtual threads also provided an opportunity to better differentiate semantic workload categories (compute, I/O, mixed). The new core.async.flow framework leverages all of the flexibility above to provide process execution on top of pure functions of immutable message data. Flow runs these functions in process execution nodes, on workload-appropriate threads, and provides topology, lifecycle, communication, monitoring, and error handling support. Presented by Alex Miller (Clojure Core Team / NuBank) during the 2025 JVM Language Summit (CA, August 2025). • core.async Rationale ➤ clojure.github.io/core.async/rationale.html • core.async.flow ➤ clojure.github.io/core.async/flow.html • Are We There Yet? ➤ infoq.com/presentations/Are-We-There-Yet-Rich-Hickey/ • The Language of the System ➤ youtu.be/ROor6_NGIWU?feature=shared • Clojure core.async ➤ youtu.be/yJxFPoxqzWE?feature=shared • Inside core.async Channels ➤ youtu.be/hMEX6lfBeRM?feature=shared • youtube.com/playlist?list=PLX8CzqL3ArzUOgZpIX6GsoRhPbnij-sco playlist • jvmlanguagesummit.com/ Tags: #JVM #Clojureu/dustingetzin r/Clojure • Recommends
programming-talkscurated list on GitHubRecommends
Under “Clojure”