What is the difference (or relation) between these three?
The JDK Enhancement Proposal (or JEP) is a process drafted by Oracle Corporation for collecting proposals for enhancements to the Java Development Kit and OpenJDK.
The JSR instruction is a fundamental building block of any PLC program. It allows the PLC to execute code within different routines and specifies the sequence of their execution. From a practical standpoint, the most common use of the JSR Instruction is within the “Main” routine.
Java Enhancement Proposal, JEP A JEP is a document that is proposing an enhancement to Java core technology.
Some people think that it is simply a matter of what the words mean. I think there is more to it than that, but let us start with the words.
In the general context:
As you can see, the plain English meanings of these words themselves don't help a lot. We need more context. In this case, the context is in the pages you linked to.
This is a specification for the Java Language. The JLS specifies the syntax for the Java programming language and other rules that say what is or is not a valid Java program. It also specifies what a program means; i.e. what happens when you run a (valid) program.
A JSR is a document created as part of the Java Community Process (JCP) that is setting the scope for a team of people to develop a new specification. These specifications are (AFAIK) always Java related, but they frequently address things that are not going to be core Java SE or Java EE technology. A typical JSR's subject material is a relatively mature technology; i.e. on that is in a state that can be specified. (If you try produce a specification too early, then you typically end up with a bad spec. Other things can lead to that too.)
A JEP is a document that is proposing an enhancement to Java core technology. These proposals are typically for enhancements that are not ready to be specified yet. As the JEP-0 document states, JEPs may call for exploration of novel (even "whacky") ideas. Generally speaking, prototyping will be required to separate the viable and non-viable ideas and clarify them to the point where a specification can be produced.
So the relationship between JEPs, JSRs and specifications is like this:
JEPs propose and develop experimental ideas to the point where they could be specified. Not all JEPs come to fruition.
JSRs take mature ideas (e.g. resulting from a JEP), and produce a new specification, or modifications to an existing specification. Not all JSRs come to fruition.
A specification is a common work product of a JSR. (Others include source code of interfaces, and reference implementations.) The JLS is an example of a specification. Others include the JVM specification, the Servlet and JSP specifications, the EJB specifications and so on.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With