On Wed, 28 Sep 2016 15:55:34 +0200, Jochen Wiedmann wrote:
On Wed, Sep 28, 2016 at 1:40 PM, Gilles <gil...@harfang.homelinux.org> wrote:

If not, then random utilities are not best located in Commons Lang,
because indeed the no-dep requirement forces you to go through
"java.util.Random" which is bad (TM) for several reasons, mentioned
here, there, and everywhere.

I agree that RNG could be removed from CL (Binary compatibility
considerations left aside). However, rather than introducing
unnecessary dependencies, one would instead use an RNG interface, with
an ovious default implementation. In other words, if "Joe Average
Random" (aka Gilles) wants to use Commons RNG, he's perfectly capable
to do so.


Do you mean that CL must define its own interface, say

interface CommonsLangRandom {
  int nextInt();
  long nextong();
  double nextDouble();
  // and so on.
}

and that it's up to the user to create the bridge for delegating
to the library of his choice?

So, in _user_ code:

CommonsLangRandom asCLRandom(final java.util.Random rand) {
  return new CommonsLangRandom() {
    public nextInt() {
      return rand.nextInt();
    }
  }
}

and/or

CommonsLangRandom asCLRandom(final UniformRandomProvider rand) {
  return new CommonsLangRandom() {
    public nextInt() {
      return rand.nextInt();
    }
  }
}


That's the way how you design low level libraries.

That's seems a good compromise if CL is indeed the low-level
libray it purports to be.


Gilles


Jochen


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to