“There are only two hard things in Computer Science: cache invalidation and naming things (and off-by-one errors)”
Clojure is a great language, and one of the few things I dislike about coding in Clojure are namespaces.
It is not because namespaces are fundamentally a bad idea – in fact namespaces are a great feature and I believe they are fundamentally important if you are trying to manage a code base effectively.
But they are particularly fiddly to get right in Clojure. They cause a lot of unnecessary grief. They are not Simple. This is the story of my battle with the namespace demons to construct a decent namespace for Clisk live-coding.