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.
@jstepien @jeeger I think another aspect is that data driven APIs are the norm. Data in Clojure is transparent and inert. When you call a function, the only things you need to know are the shape of the data you pass in and the shape that you get back.
This is a big contrast from OO style APIs where you work with graphs of objects that are opaque and stateful.