r/Clojure • • 17h ago

Ten years on: what are go blocks for, now that io-thread runs on virtual threads?

26 Upvotes

Back in 2016 I asked on Stack Overflow why go blocks return a channel: https://stackoverflow.com/questions/36236869/why-do-core-async-go-blocks-return-a-channel

The accepted answer: use it as a handle, so other code can wait for the go block to finish, or take its result with <!!.

A lot has changed since. In the recent core.async alphas, go blocks were reimplemented on virtual threads, and then that was reverted. What stayed is io-thread running on virtual threads on Java 21+, so blocking I/O there no longer ties up a platform thread.

So, for those on recent core.async and Java 21+:

  • When do you still reach for go rather than io-thread?
  • Is the returned channel still how you wait for a result, or do you do something else now?

r/Clojure • • 7h ago

Static landing page in ClojureScript

Thumbnail orgpad.info
22 Upvotes

We have spent quite some time building new static landing page for OrgPad and making it small and fast. The blog post summarises what we learned along the way.


r/Clojure • • 7h ago

gasbb: Clojure in Google Sheets by Benjamin Schwerdtner

Thumbnail faster-than-light-memes.xyz
13 Upvotes