+1: [lang] is a low-level library, which should not have any deps. Gary
On Tue, Sep 27, 2016 at 5:55 PM, Brent Worden <brent.wor...@gmail.com> wrote: > There are no good reasons for a component such as commons-lang to have any > runtime dependencies beside Java itself. The commons-lang install base is > enormous with very diverse usage patterns. Having it coupled to another > libraries, regardless of the maintainer, invites all kinds of classloading > problems when those libraries have different release cadences. > > Using java.util.Random as a bridge between commons-lang and commons-rng is > a very good solution. It allows for UniformRandomProvider instances to be > used by commons-lang by simply adapting the providers to java.util.Random > instances. The gives the users of commons-lang the ability to use the RNG > of their choosing while allowing them to update the components > independently of one another to avoid compatibility problems. This give > the components high cohesion in that they can easily be used together and > low coupling in that they are only bound via a shared, never changing API. > > Brent > > On Tue, Sep 27, 2016 at 11:36 AM, Gilles <gil...@harfang.homelinux.org> > wrote: > > > On Tue, 27 Sep 2016 13:57:04 +0200, Emmanuel Bourg wrote: > > > >> Le 27/09/2016 à 13:22, Gilles a écrit : > >> > >> I (strongly) suggest > >>> > >>> ArraysUtils.shuffle(Object[] array, o.a.c.rng.UniformRandomProvider > >>> rnd) > >>> > >> > >> That's not possible, because we don't want to add external dependencies > >> to commons-lang. > >> > > > > I mistakenly thought that your examples (cf. uncut previous post) meant > > that this CM-alike tradition was coming to an end... > > > > Anyway, assuming there are still good reasons for CL to not have > > dependencies[1], it is then all the more interesting that utilities > > based on RNGs should have their own component. > > > > CL would benefit (reduced codebase reduces the maintenance cost) > > and users would benefit (from using better generators). > > > > Moreover, the default RNG should be a good one, i.e. not > >>> "java.util.Random". > >>> > >> > >> Using java.util.Random by default is good enough, and it's consistent > >> with Collections.shuffle(): > >> > >> > >> http://docs.oracle.com/javase/8/docs/api/java/util/Collectio > >> ns.html#shuffle-java.util.List- > >> > > > > Well, of course, the JDK utilities use the JDK's RNG. > > > > That doesn't mean that Apache should do the same, or spread bad > > practice: > > http://www0.cs.ucl.ac.uk/staff/d.jones/GoodPracticeRNG.pdf > > (see page 2 about "java.util.Random"). > > > > Gilles > > > > [1] Even if those would be in our total control! > > > > > > > >> Emmanuel Bourg > >> > >> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > > For additional commands, e-mail: dev-h...@commons.apache.org > > > > > -- E-Mail: garydgreg...@gmail.com | ggreg...@apache.org Java Persistence with Hibernate, Second Edition <http://www.manning.com/bauer3/> JUnit in Action, Second Edition <http://www.manning.com/tahchiev/> Spring Batch in Action <http://www.manning.com/templier/> Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory