10

JEP 11: Incubator Modules:

Summary

Incubator modules are a means of putting non-final APIs and non-final tools in the hands of developers, while the APIs/tools progress towards either finalization or removal in a future release.

Goals

Enable JDK Release Projects to distribute a limited set of APIs and tools that ("are" is probably missing on the website) not final and complete, and which would benefit from developer or user feedback. This will reduce the chance of costly mistakes in the Java SE Platform and the JDK.


JEP 12: Preview Features:

Summary

A preview feature is a new feature of the Java language, Java Virtual Machine, or Java SE API that is fully specified, fully implemented, and yet impermanent. It is available in a JDK feature release to provoke developer feedback based on real world use; this may lead to it becoming permanent in a future Java SE Platform.

Goals

Allow Java platform developers to communicate whether a new feature is "coming to Java" in approximately its current form within the next 12 months.


I am wondering what is the point of having these two, conceptually (even semantically), quite similar aspects, separately?

Yes, JEP 12 has more Goals, slightly different definition and summary; and it seems to have closer connection with JVM internals; however, still, these two JEPs seem quite overlapping to me.

Any ideas?

Giorgi Tsiklauri
  • 9,715
  • 8
  • 45
  • 66
  • 4
    The first is non-final the second fully implemented. Sounds as if the first one is still work in progress. – Christoph John Mar 05 '21 at 20:56
  • I wouldn't think it's that easy to tell apart.. at least, they are both meant to be tested, in the community, and features in them, will have one of two possible continuations: *accepted* or *removed*. Additionally, read the goals. Simply speaking, they just put something new into "beta" mode, and if that "something" will prove itself and will have a good feedback (performing well), it will get into JCP. – Giorgi Tsiklauri Mar 05 '21 at 21:03
  • https://4comprehension.com/preview-experimental-and-incubating-features-in-java/ "As much as having three different names denoting the character of the change and how close it is to be complete, we need to remember that none of them are actually production-ready." – Christoph John Mar 06 '21 at 00:25

1 Answers1

3

Answer from Stuart Marks:

Incubation applies to modules, and a preview feature is something that is more closely tight in with the language and the libraries.

Followed up by Brian Goetz:

Preview features are really finished but are waiting for a round of feedback whereas the incubator mechanism has more room to iterate over the api several times to get feedback.

Source: Video from Devoxx where the Java architects answer this question:

StevenV
  • 113
  • 1
  • 9