I've asked myself this same question 50 times now.  My best experience
so far with a community that had packages was Ruby, and it was
incredibly simple.  Everyone can choose whatever name they like for
their package as long as it isn't up on rubygems yet.  I am strongly
in favor of dropping these ridiculous Java naming schemes that not
only waste time and obscure library names, but I think they also have
a kind of selfishness to them.  Just because I start a project doesn't
really mean it is appropriate to use my domain for the lifetime of the
project.  Would you like to be programming with
com.richhickey.clojure.core all of the time?  Not I.  This is the open
source world, and I think social components like this are important
for collaboration and community.  Ruby (and Gems) had its own issues
regarding packages and versioning, but conflicting names was never a
problem for me.  There are a lot of names out there, and since we have
the ability to prefix however we like I don't see any good arguments
for the Java naming scheme besides, "that's the way they do it in
Java."  Lets evolve.

I find the whole foo.core thing unfortunate too, because it would
otherwise be nicer to just (:use foo).  In my own projects I've
adopted this style though, with the idea that I would like my code to
be usable from other JVM languages in the future.  Not sure how
realistic or plausible that really is...  So yeah, if the goal is to
reach a consensus on package naming, I vote for the foo.core style.
It works for all libs (AOT or not), and it keeps it clean and simple.
It doesn't always have to be "core" either.

foo.central
foo.essence
foo.api
foo.live
foo.base

-Jeff

On Jul 7, 6:13 pm, James Reeves <weavejes...@googlemail.com> wrote:
> I've kinda asked this question before, but I framed in the context of
> a suggestion, and the discussion got bogged down with no real answer.
>
> So this time, let me keep it simple: if I have a small Clojure
> library, "foo", which only has one namespace, what is the idiomatic
> name for that namespace?
>
>  - foo
>  - foo.foo
>  - foo.core
>  - com.github.weavejester.foo
>
> I don't intend to call "foo" from Java, so there is no genclass in the
> namespace definition, and I do not intend to AOT compile the
> namespace.
>
> - James

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

Reply via email to