Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference (or relation) between JLS, JSR and JEP? [closed]

Tags:

java

jls

jsr

jep

What is the difference (or relation) between these three?

like image 481
Kanad Avatar asked Jul 11 '18 09:07

Kanad


People also ask

What does JEP stand for Java?

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.

What is the use of JSR?

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.

What are JEPS?

Java Enhancement Proposal, JEP A JEP is a document that is proposing an enhancement to Java core technology.


1 Answers

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:

  • A specification is a document that specifies (or defines) something.
  • A request is statement (written or verbal) asking for something.
  • A proposal is a statement (written or verbal) putting forward something to be considered.

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.

Java Language Specification, JLS

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.

Java Specification Request, JSR

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.)

Java Enhancement Proposal, JEP

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:

  1. JEPs propose and develop experimental ideas to the point where they could be specified. Not all JEPs come to fruition.

  2. 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.

  3. 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.

like image 95
Stephen C Avatar answered Sep 22 '22 07:09

Stephen C