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 <[email protected]> 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 [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
