I've seen recommendations around not to use single-segment namespaces
[1]. What exactly is a single-segment namespace and why should I avoid
using them in my projects?
My guess is that a single-segment namespace is one that's completely
flat instead of hierarchical, as if I were to put my source in src/
foo.clj instead of src/foo/core.clj and declare the namespaces
accordingly. If so, maybe there is some reason relating to interop or
code sharing why this is avoided? I really like the simplicity of src/
foo.clj so please help me understand why it's a bad idea (if it is at
all!).
This is my first post to the group. I hope this question is welcome
and not too terribly redundant or annoying. (I did try searching for
the answer but couldn't find an explanation.)
Thanks,
Evan
[1] For example, from
http://github.com/technomancy/leiningen/blob/master/TUTORIAL.md:
"The src/myproject/core.clj file corresponds to the myproject.core
namespace. Note that we use that instead of just myproject since
single-segment namespaces are discouraged in Clojure."