В чем разница между JLS и JSR и JEP
JLS - спецификация языка Java - https://docs.oracle.com/javase/specs/jls/se9/html/index.html
JSR - Запросы спецификаций Java - https://jcp.org/aboutJava/communityprocess/final/jsr376/index.html (система модулей) формальные документы, описывающие предлагаемые спецификации и технологии для добавления на платформу Java.
JEP - Предложение по улучшению JDK - http://openjdk.java.net/jeps/0, http://openjdk.java.net/jeps/261 (модульная система)
В чем разница между этими тремя?
1 ответ
Некоторые люди думают, что это просто вопрос значения слов. Я думаю, что это нечто большее, но давайте начнем со слов.
В общем контексте:
- Спецификация - это документ, который указывает (или определяет) что-то.
- Запрос - это заявление (письменное или устное) с просьбой о чем-либо.
- Предложение - это заявление (письменное или устное), в котором предлагается что-то для рассмотрения.
Как видите, простые английские значения этих слов сами по себе не помогают. Нам нужно больше контекста. В этом случае контекст находится на страницах, на которые вы ссылаетесь.
"Спецификация языка Java" (JLS). Это спецификация для языка Java. JLS определяет синтаксис для языка программирования Java и другие правила, которые говорят, что является или не является допустимой программой Java. Он также указывает, что означает программа; т.е. что происходит, когда вы запускаете (действительную) программу.
"Запрос спецификации Java" (JSR). JSR - это документ, созданный в рамках процесса сообщества Java (JCP), который задает для группы людей возможность разработки новой спецификации. Эти спецификации (AFAIK) всегда связаны с Java, но они часто касаются вещей, которые не собираются быть базовой технологией Java SE или Java EE. Типичным предметным материалом JSR является относительно зрелая технология; то есть на то, что находится в состоянии, которое может быть указано. (Если вы попытаетесь создать спецификацию слишком рано, то, как правило, вы получите плохую спецификацию. К этому могут привести и другие вещи.)
"Предложение по улучшению Java" (JEP). JEP - это документ, предлагающий усовершенствование базовой технологии Java. Это предложения, как правило, для улучшений, которые еще не готовы к уточнению. Как говорится в документе JEP-0, JEP могут требовать изучения новых (даже "причудливых") идей. Вообще говоря, прототипирование потребуется для разделения жизнеспособных и нежизнеспособных идей и уточнения их до такой степени, что можно будет разработать спецификацию.
Таким образом, отношения между JEP, JSR и спецификациями таковы:
JEP предлагают и развивают экспериментальные идеи до такой степени, чтобы их можно было указать. Не все JEP осуществляются.
JSR принимают зрелые идеи (например, вытекающие из JEP) и создают новую спецификацию или модификации существующей спецификации. Не все JSR осуществляются.
Спецификация является распространенным рабочим продуктом JSR. (Другие включают исходный код интерфейсов и эталонные реализации.) JLS является примером спецификации. Другие включают спецификацию JVM, спецификации Servlet и JSP, спецификации EJB и так далее.