Thanks for this, Stuart. I hope it's not too late. As one who has spent the last couple weeks spinning up a new project that uses its own local Ivy repository I've been feeling this pain first hand. The number of dependencies I have had to add just for a few Clojure libraries has been quite painful. I attributed it to how young the language is that these utility libraries haven't had time to consolidate.
On Sunday, May 12, 2013 6:29:28 PM UTC-5, Stuart Sierra 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.