Random thought from #clojure irc last night:
Clojure disposes of so much of the ceremony that exists in most programming languages and is so “data-oriented” that the structure of Clojure applications seems to represent the contours one’s domain far more than any other language I’ve encountered.
That is to say, outside of some probably very broad idioms, there’s probably no such thing as a “typical structure” of Clojure programs.



Pingback: How should Clojure applications be structured?
After having written a medium sized application with I think a very good structure split across a dozen or so namespaces of ~500 lines each I can tell you that the next clojure app I write will have far fewer namespaces. In fact it will probably be like the source of hacker news and be in one long file as much as possible. Circular dependencies are a very common problem in some domains (yes I know how to work around them with declare and loading tricks but it’s just annoying) and the compiler errors when there’s a problem in another namespace and you just get a reference to line 0 of the ns where it’s used is pretty annoying too.