Почему в именах модулей запрещены завершающие цифры?

Я создал проект Java с именем java9 для работы с модулями Java 9. У меня есть следующее module-info.java:

module java9 {
    ...
}

Однако компилятор javac жалуется на цифру в имени моего модуля:

src\module-info.java:1: warning: [module] module name java9 should avoid terminal digits
module java9 {
       ^

И во время выполнения java тоже жалуется:

WARNING: Module name "java9" may soon be illegal

Кто-нибудь может объяснить, почему запрещаются конечные цифры? Что должны делать такие библиотеки, как commons-lang3, чтобы избежать этого ограничения? Что делать, если у меня есть имя библиотеки, такое как base64 или sha3?

Этот вопрос не содержат ответ на мой вопрос. Он отвечает, как избежать ошибки, но не объясняет, почему Java так ограничивает схему именования.


person ZhekaKozlov    schedule 26.03.2017    source источник
comment
Ознакомьтесь с этим более ранним вопросом: Как устранить ошибку компиляции module-info.java в Jdk9/java-9. В выпусках Jigsaw есть обсуждение этой темы.   -  person cbr    schedule 26.03.2017
comment
почему Java так ограничивает схему именования Это просто предупреждение, а не ограничение.   -  person 4castle    schedule 26.03.2017
comment
Этот вопрос не содержит ответа на мой вопрос. Это объясняет, как избежать ошибки, но не объясняет, почему Java так ограничивает схему именования. - Неверно. Прочтите этот ответ! stackoverflow.com/a/41859239/139985   -  person Stephen C    schedule 26.03.2017
comment
@StephenC И почему они не рекомендуют людям кодировать версии в именах модулей? Вот в чем вопрос.   -  person ZhekaKozlov    schedule 26.03.2017
comment
Эм... это не тот вопрос, который вы задали.   -  person Stephen C    schedule 26.03.2017
comment
@StephenC Почему это плохая идея?   -  person ZhekaKozlov    schedule 26.03.2017
comment
Я сказал, что ››они‹‹ думают, что это плохая идея.   -  person Stephen C    schedule 26.03.2017