Draft JEP: Incubating Language and VM Features

Alex Buckley alex.buckley at oracle.com
Sat Jan 20 01:04:48 UTC 2018

"Incubation is not a mechanism for experimentation and risk-taking."

An incubating feature has evolved beyond a successful experiment. We're 
sure enough of its scope and quality to commit it to the Java SE 
Platform. Any number of the mature language features in recent years 
could have been incubated to get that last ounce of feedback from 
developers. Yes, we have to admit the possibility that an incubating 
feature might be dropped -- "Sounds like a failed experiment!", I hear 
you cry -- but there is no sense with an incubating feature of 
tinkering, rough edges, version 0.1 quality, unsupported status, etc.


On 1/19/2018 3:39 PM, Remi Forax wrote:
> I like the whole idea, solving the problem of new features not being
> enough tested is a good idea but the the way the experimental flag is
> set is like asking for trouble.
> The JEP goes into a great length to say that we only need a bit of
> information to mark a classfile as experimental, then explain that
> the way to set this experimental bit is to change semantics of the
> classfile version i.e. current classfile versions that support jdk 10
> are the version <= 0x00360000 and it will becomes the version <=
> 0x0036ffff.
> You can also add a new empty class attribute "Experimental" exactly
> like Deprecated is a class attribute, we do not care about the size
> of the attribute given that the class is an experimental class, so
> 99.99..% of the classes will be marked experimental.
> So let's all agree that this is nice JEP and that the way to mark a
> class experimental is to add an attribute Experimental to the
> classfile.

More information about the jdk-dev mailing list