web-dev-qa-db-fra.com

Quelle est la différence (ou relation) entre JLS, JSR et JEP?

Quelle est la différence (ou relation) entre ces trois?

20
simpleDev

Certaines personnes pensent que c'est simplement une question de signification des mots. Je pense qu'il y a plus que cela, mais commençons par les mots.

Dans le contexte général:

  • Un spécification est un document qui spécifie (ou définit) quelque chose.
  • A demande est une déclaration (écrite ou verbale) demandant quelque chose.
  • A proposition est une déclaration (écrite ou verbale) proposant quelque chose à considérer.

Comme vous pouvez le voir, la signification simple de ces mots en anglais n'aide pas vraiment. Nous avons besoin de plus de contexte. Dans ce cas, le contexte se trouve dans les pages auxquelles vous avez lié.

"Java Language Specification" (JLS). Il s'agit d'une spécification pour le langage Java. Le JLS spécifie la syntaxe du langage de programmation Java et d'autres règles qui indiquent ce qui est ou n'est pas un programme Java valide. Il précise également ce que signifie un programme; c'est-à-dire ce qui se passe lorsque vous exécutez un programme (valide).

"Demande de spécification Java" (JSR) . Un JSR est un document créé dans le cadre du Java Community Process (JCP) qui définit la portée d'une équipe de personnes pour développer une nouvelle spécification. Ces spécifications sont (AFAIK) toujours Java liées, mais elles concernent souvent des choses qui ne seront pas la technologie de base Java SE ou Java EE. Le matériel sujet d'un JSR typique est une technologie relativement mature; c'est-à-dire que dans un état qui peut être spécifié . (Si vous essayez de produire une spécification trop tôt, vous vous retrouvez généralement avec une mauvaise spécification. D'autres choses peuvent aussi y conduire.)

"Java Enhancement Proposal" (JEP). Un JEP est un document qui propose une amélioration de la technologie de base de Java. Ces propositions concernent généralement des améliorations qui ne sont pas encore prêtes à être spécifiées. Comme l'indique le document JEP-0, les JEP peuvent appeler à l'exploration de nouvelles idées (même "délirantes"). De manière générale, le prototypage sera nécessaire pour séparer les idées viables et non viables et les clarifier au point où une spécification peut être produite.

La relation entre les JEP, les JSR et les spécifications est donc la suivante:

  1. Les PEC proposent et développent des idées expérimentales au point où elles pourraient être spécifiées. Tous les JEP ne se concrétisent pas.

  2. Les JSR prennent des idées mûres (résultant par exemple d'un JEP) et produisent une nouvelle spécification ou des modifications à une spécification existante. Tous les JSR ne se concrétisent pas.

  3. Une spécification est un produit de travail courant d'un JSR. (D'autres incluent le code source des interfaces et des implémentations de référence.) Le JLS est un exemple d'une spécification. D'autres incluent la spécification JVM, les spécifications Servlet et JSP, les spécifications EJB, etc.

26
Stephen C