Only a lateral quick comment: Node.js + NPM (its package manager) has a nice version management.
If your module A needs D version 0.1, and module B needs D version 0.2, no problem. Both versions are added, and A loads version 0.1, meanwhile B loads version 0.2. The trick is the search path for modules: each module has its own subfolder for dependencies I guess it could be difficult to implement such feature in Java/Clojure Angel "Java" Lopez @ajlopez On Sun, May 12, 2013 at 8:29 PM, Stuart Sierra <the.stuart.sie...@gmail.com>wrote: > Based on a recent thread about "utility" libraries, I would like to > take this opportunity to ask everyone to help us avoid the dependency > mess that Common Lisp has gotten into, where there are over a dozen > such "convenience" libraries[1]. > > By all means, use these libraries in your *applications* if you find > them useful. But please don't make your *libraries* depend on them > unless you really need to. > > Doing this will help application developers who want to use your > library. For example, if my application depends on libraries A, B, and > C, I might end up with transitive dependencies on three different > "utility" libraries. If I want to add library D which depends on an > incompatible version of one of those utilities, I'm stuck. By > adding to the dependencies of your library, you increase the > likelihood of dependency conflicts for consumers. > > The ideal number of dependencies for a library release (not counting > Clojure itself) is zero. Obviously, use common sense. If your library > relies on critical functionality in another library, then make the > dependency. But if you can get by without the dependency (even if that > means copying some of those "utility" functions into your own code and > making them private) then you will make life easier for consumers of > your library. > > Thanks, and happy coding. > -S > > > [1]: http://cliki.net/Convenience%20library > > -- > -- > 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/groups/opt_out. > > > -- -- 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/groups/opt_out.