[Sorry it took so long. Have been on break.] From Guy:
Thanks for the forward. Here are my thoughts: Good question from Rémi. If we consider PRNGs to have started at about the time of von Neumann, circa 1946, then I would say that we have been inventing a new category about once every 25 years or so: jumpable, multi-level jumpable, cryptographically secure, splittable. Twenty years ago we would just have one or more levels of jumping/leaping. I think SecureRandom appeared in 2002 (in J2SE 1.4), and the first version of SplittableRandom was in 2014. So I could be wrong, but I really don’t expect to have to add any more interfaces in the next decade or two. I think we will get more benefit from the better type checking than we would get with optional methods. —Guy > On Nov 17, 2020, at 7:18 PM, Remi Forax <fo...@univ-mlv.fr> wrote: > > An honest question, > why do we need so many interfaces for the different categories of > RandomGenerator ? > > My fear is that we are encoding the state of our knowledge of the different > kinds of random generators now so it will not be pretty in the future when > new categories of random generator are discovered/invented. > If we can take example of the past to predict the future, 20 years ago, what > should have been the hierarchy at that time. > Is it not reasonable to think that we will need new kinds of random generator > in the future ? > > I wonder if it's not better to have one interface and several optional > methods like we have with the collections, it means that we are loosing the > possibilities to precisely type a method that only works with a precise type > of generator but it will be more future proof. > > Rémi > > ----- Mail original ----- >> De: "Jim Laskey" <jlas...@openjdk.java.net> >> À: "build-dev" <build-...@openjdk.java.net>, "core-libs-dev" >> <core-libs-...@openjdk.java.net>, >> security-dev@openjdk.java.net >> Envoyé: Mardi 17 Novembre 2020 23:21:18 >> Objet: Re: RFR: 8248862: Implement Enhanced Pseudo-Random Number Generators >> [v3] > >>> This PR is to introduce a new random number API for the JDK. The primary >>> API is >>> found in RandomGenerator and RandomGeneratorFactory. Further description >>> can be >>> found in the JEP https://openjdk.java.net/jeps/356 . >> >> Jim Laskey has updated the pull request with a new target base due to a >> merge or >> a rebase. The pull request now contains 40 commits: >> >> - Merge branch 'master' into 8248862 >> - 8248862: Implement Enhanced Pseudo-Random Number Generators >> >> Update package-info.java >> - 8248862: Implement Enhanced Pseudo-Random Number Generators >> >> Updated RandomGeneratorFactory javadoc. >> - 8248862: Implement Enhanced Pseudo-Random Number Generators >> >> Updated documentation for RandomGeneratorFactory. >> - Merge branch 'master' into 8248862 >> - Merge branch 'master' into 8248862 >> - 8248862: Implement Enhanced Pseudo-Random Number Generators >> >> Move RandomGeneratorProperty >> - Merge branch 'master' into 8248862 >> - 8248862: Implement Enhanced Pseudo-Random Number Generators >> >> Clear up javadoc >> - 8248862; Implement Enhanced Pseudo-Random Number Generators >> >> remove RandomGeneratorProperty from API >> - ... and 30 more: >> https://git.openjdk.java.net/jdk/compare/f7517386...6fe94c68 >> >> ------------- >> >> Changes: https://git.openjdk.java.net/jdk/pull/1273/files >> Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1273&range=02 >> Stats: 14891 lines in 31 files changed: 11110 ins; 3704 del; 77 mod >> Patch: https://git.openjdk.java.net/jdk/pull/1273.diff >> Fetch: git fetch https://git.openjdk.java.net/jdk pull/1273/head:pull/1273 >> >> PR: https://git.openjdk.java.net/jdk/pull/1273