Hacker Newsnew | past | comments | ask | show | jobs | submit | puredanger's commentslogin

This is very cool, glad to see it! I couldn’t figure out which version of the JVM you used for the core.async tests? Also, you are using old versions of both Clojure and core.async which have both had optimizations in the last year that should help all of these. Some of these tests may also be helped by using io-thread (with JVM virtual threads) instead of go in latest core.async.


Hi, Alex!

Happy you find it cool!

I will update the Clojure and core.async versions to latest.

You're right I forgot to mention the JVM version in the benchmarks.

I'll be running fresh benchmarks once the current task I'm working on is done.

I will have to look into io-thread, not familiar with it.

Although my aim with the benchmarks is to have nearly identical code for all platforms without any platform-specific optimizations - I'm not sure yet how io-thread plays into that.

Will definitely add the JVM version and update Clojure dependencies and let you know when I have fresh benchmarks.


It was hand drawn by an artist. Indiana Jones (the obvious inspiration) wore two belts, one for his pants, one for his whip/holster. The code was provided by Rich.


Many people use it in ways that have no ties to the JVM - ClojureScript on the web, Babashka for scripting, ClojureDart for Dart apps, etc.


Correct, it will be on the CultRepo channel.


FYI, the canonical version (recut slides / video / audio) of this talk can now be found at https://www.youtube.com/watch?v=SxdOUGdseq4


I always wondered what that juggling animation slide looked like!


Rich's opening remarks from Clojure/Conj 2025 were just published and might be an interesting complement to this: https://www.youtube.com/watch?v=MLDwbhuNvZo


Thanks for the feedback! Flow monitor does now support filters on the process state (and more on that it is coming to flow itself soon). If you were able to use monitor, it shows the channel buffer states, I guess that was not sufficient to guess why values weren't flowing?


Note that newer things are always downloaded less because they have been around less time (lots of people continue using old versions).

Maven stats are available to artifact deployers, but they are useless for estimating users or community size as downloads are largely from CI servers constantly downloading artifacts for testing. Download numbers are large and seesaw erratically. Unique IP counts are a little more stable but also inflated beyond relevance by CI.


I agree with your critiques, but I still don't think it negates the overall picture I see.

When I was a scientist, we were trained to look at the overall body of evidence when trying to assess a claim. Any individual study has flaws, but when we survey the literature as a whole, do we see many studies confirming a finding? Independent studies presumably don't share the same set of flaws (usually), and the more studies demonstrating something, the more likely it is to be true.

And I just haven't heard any counter-evidence. Are job postings increasing or decreasing? What's the change in MAU for Clojurians? Etc.

I looked for job/social media numbers, but it's hard to get those numbers. If you have better data, I'd love to see it.


When you deploy a flow, you choose the workload type (:compute, :io, or :mixed) and the process will be deployed with the appropriate thread type.


Flow is intended for processes with long-running stable topologies. Rich has been thinking about options to "patch" the running topology but it is quite tricky due to the concurrency issues and I'm not sure that will ever be added.

Even though the flow topology is fixed, it's perfectly acceptable for a flow component to use other variable resources and act merely as a coordinator. So you could for example have a process that send data out to an external dynamic thread pool and gets callbacks via a channel.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: