Email or username:

Password:

Forgot your password?
Jan Stępień

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.)

2 comments
Jan Stępień

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.

Yogthos

@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.

Go Up