I love Clojure.  But:  My number one complaint about it is that the 
compiler won't allow cyclic namespace dependencies.  I am not a 
compiler-writer, but as far as I can tell the only reason for this 
restriction is ... philosophical.  It forces bad code organization, and it 
wastes time.  Those who think that cyclic code is an evil are free to 
encourage its avoidance.  I'm happy to avoid it!  But sometimes I can't.  I 
absolutely hate the cyclic namespace restriction.  Drives me crazy when I 
am forced to encounter it.

My latest case is that I'm trying to debug a weird Java interop 
problem--something that works in one app I've written, in which I ended up 
putting most of the application into one file, but doesn't work in the one 
I'm working on now.   And I had finally come up with a clever way of 
avoiding sticking most of the code into one namespace.  I'd worked around 
the conflict between Clojure's requirements and the requirements of the 
Java library I'm using.  But now there's this one problem, and I want to 
try an experiment to see whether it fixes the problem.  It looks like I'm 
going to have to pack all of the code into one file and rewrite everything 
that that necessitates just for this purpose. Aghh.

In another post a while ago, I also noted that whether there's a cyclic 
dependency sometimes depends on seemingly arbitrary changes to code--e.g. 
add a type hint to avoid reflection, and all of a sudden you've got cyclic 
code that you didn't have before.  This isn't the current case--I haven't 
even gotten to that stage.

I have sometimes ranted a bit in this group, and in the end some of my 
rants were unreasonable.  I don't think this is unreasonable.  The cyclic 
dependency restriction is absurd.  I'm not trying to start a flame ware.  I 
feel strongly about this, and I'm frustrated.

What I want: I'm not trying to make everyone sit around tapping their 
fingers while code to goes through multi-pass compliations.  All I'm asking 
for is a compiler option that will allow cyclic dependencies when requested.

I'm pretty sure that the way I've put things above illustrates some 
ignorance on my part, but still ... how hard can this be?  It's a 
reasonable thing to ask of a sophisticated compiler.

Finally, is there a JIRA ticket for this issue?  I looked but didn't find 
it.  I will add a ticket if not, even if it's not likely to be acted upon 
any time soon.

Again: I sincerely love Clojure!
But.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to