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
-~----------~----~----~----~------~----~------~--~---

Reply via email to