My .02 cents... I always viewed Contrib as an incubator of sorts for Core. That it was simply a testing ground for functionality that *MIGHT* make it into Core if enough people find it useful, or Rich hands down his good graces.
Requiring a few external libs here and there, and breaking Contrib up into "modules" may sound simple to some, but I think your quickly forgetting the additional cognitive load of such a decision. If we go the simple route and just require the user to download the libs, then it starts out all well and good, but will quickly turn into dependency hell. Anyone whose been using Linux long enough, or still uses a distro like Slackware knows exactly what I'm talking about. IMO, this is just *NOT* and option. If we create some build or module system around Contrib, we alleviate the dependency problem, but add complexity to the layout/build of Contrib. I'm not saying it's a lot, but there is some form of complexity added for sure. I'm just not sure if Contrib needs such complexity? Is it really in the "essence" of Contrib to store all these Clojure libs? Is that it's purpose? IMO, Contrib is just a way for Rich to allow user contribution to Clojure, without creating havoc on the development of Clojure proper. Often times when someone post a "useful" function on this group and asks to add it to Core, the response is a unanimous "Add it to Contrib and see where it goes from there." This allows Clojure to grow without Rich reading every single contribution because he can rely on community around Contrib to make sound decisions. I believe, if you allow 3rd party libs to penetrate Contrib, then you must allow the same libs to penetrate Clojure itself. To flip it the other way, I think the only deps Contrib should be allowed are the deps used by Core. I think Contirb should remain a breeding ground for Core (if that is indeed its current purpose), and should remain as dead simple and dependency free as possible! I think Clojure libs which require 3rd party deps should be left to their own devices for now. The unification of those can be solved by some build/dependency tool. Maybe there should be a 3rd project called clojure-extensions? This could rely on core, clojure-contrib and any number of 3rd party deps. I do admit, though, that might confuse beginners more than a modularized Contrib. Sorry if I missed the point of this thread, but I thought the question should be asked. What is the purpose of Contrib? P.S. I don't want to get off-track, but I also don't understand why ClojureCLR or clojurescript are included in Contrib. I also don't understand why test files are not under their own top level dir? I think that is a good convention and allows for easier tooling. OK, I'll shut up now. On Apr 15, 4:01 am, dysinger <dysin...@gmail.com> wrote: > +1 I said the same thing on IRC > > On Apr 14, 11:27 am, Mark Reid <mark.r...@gmail.com> wrote: > > > Hi, > > > I'm not sure if this is relevant to this discussion but, as a > > newcomer, I was puzzled by the organisation of the clojure-contrib > > source. > > > Why, for example, are ClojureCLR and clojurescript at the top of the > > trunk? Shouldn't these be in separate projects? > > > Regards, > > > Mark. > > --http://mark.reid.name/ > > > On Apr 14, 10:19 pm, Rich Hickey <richhic...@gmail.com> wrote: > > > > I've been thinking recently about contribs with dependencies. > > > > I think it's very important to have layers - e.g. core depends only on > > > JDK 1.5, contrib only on core. Lately there have been some ideas > > > centering around Joda Time, [Parallel]Colt, AWS, JFreeChart, Fork/Join > > > etc. > > > > I'd like to start a discussion about how best to support the > > > contributions of libraries that depend on things not in the JDK. > > > > Obviously, without care and rules it could get crazy quickly, and I > > > want to avoid the kitchen-sink effect. It is very important that > > > things remain [truly, not just apparently] simple. > > > > Looking for suggestions, > > > > Rich --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---