Menu
Java 17 proposal would enhance PRNGs

Java 17 proposal would enhance PRNGs

Pseudo random number generators would gain a uniform API in the Java long-term support release due in September

Credit: Christoph

Although not due until September, Java 17 has already begun to take shape, with a proposal of enhanced pseudorandom number generators targeted to the planned upgrade to standard Java.

Filed as part of OpenJDK's Java Development Kit (JDK) 17, the proposal would provide new interface types and implementations for pseudorandom number generators (PRNGs) including jumpable PRNGs and an additional class of splittable PRNG algorithms (LXM).

A new interface, RandomGenerator, would supply a uniform API for all existing and new PRNGs. Four specialised RandomGenerator interfaces would be provided. Goals of the plan include:

  • Making it easier to use various PRNG algorithms interchangeably in applications.
  • Improved support for stream-based programming, providing streams of PRNG objects.
  • Elimination of code duplication in existing PRNG classes.
  • Preservation of existing behavior of class java.util.Random.

Motivating the plan is a focus on multiple areas for improvement in the area of pseudorandom number generation in Java. The effort does not call for providing implementations of numerous other PRNG algorithms. But three common algorithms have been added that already are widely deployed in other programming language environments.

In coming months, more features will be proposed for JDK 17. Possibilities include a foreign linker API, a vector API, and a foreign-memory access API, all of which are currently in an incubator stage in the JDK 16 release due March 16. Sealed classes, in a second preview in JDK 16, could become generally available in JDK 17.

Early-access open source builds of JDK 17 can be found at jdk.java.net. JDK 17 is slated to be the next long-term-support (LTS) release of Java, meaning it would receive multiple years of support; other Java releases, serving as feature releases, are supported for just six months.

LTS releases arrive every three years. The last LTS release, JDK 11, was published in September 2018. New releases of Java arrive every six months. The current release line of standard Java is JDK 15.


Show Comments