Watching a Java library author for a very popular library decide to break binary compatibility for every user as opposed to wait a few years. Very grateful both that clojure has the one kind of data aggregate and that clojure library authors understand that's a pretty bad thing to do.
But I don't think, it is the fault of the developers or a question of the mentality. Java development requires continuous refactoring of existing stuff, which also means breaking changes. It is just simpler in Clojure to stay compatible with something. Don't know why.
I mean you're gesturing at social stuff but I do think there is a legitimate technical reason why clojure libraries don't have the same kind of churn
There are a lot of dimensions of a Java program that make it so that if you did it "wrong" the first time there is no compatible way to fix it without breaking people
Talking about things like public fields being accessible (and you later want some indirection) and the fact that every nominal type is its own special Island
There are simply fewer design dimensions to worry about in a standard clojure program - anything that looks like a function call can be compatibly migrated to any other mechanism, all data aggregates are basically the same type, etc.
The Java community really should have the same mentality of not breaking things, but alas, when big ecosystems like Spring Boot decides to break everything then that's a strong signal to the community. Spring has been pretty good at not breaking things after its initial and infamous v1->v2 havoc, so this is new mentality is just sad.
What was the lib?
I don't want to drive any extra negativity their way. I'll send a DM