There’s an interesting quality to the #Clojure ecosystem that I’ve only now realised. Unlike many other #programming languages, Clojure applications are built out of diverse stacks of heterogenous #libraries that work together with little friction. I see three aspects that enable this.
Firstly, the entire ecosystem speaks the same #API. It’s plain old #data structures from the standard library through and through. Easy to inspect, validate, and transform when necessary.
(cont.)
Secondly, idiomatic #Clojure follows the liberal half of Postel's law: ignore everything you don't understand in your input. Extraneous data do not break behaviour.
Lastly, thanks to the importance of backwards #compatibility in the community, the heterogeneous #dependencies in your project remain compatible with each other for a long time. You waste less time fixing broken APIs.
Hat tip to @jeeger for pointing my attention to it.