Java SE версии 9, наконец, выпущена сегодня, после того, что казалось бесконечными задержками. Основным изменением в новой версии является поддержка модулей, известных как Jigsaw..
Самая последняя задержка, в момент, когда выпуск был неизбежен, заключалась в том, чтобы дать Группе экспертов Java время, чтобы вернуть проект Jigsaw в строй. Именно эта функция позволяет программистам Java писать код, состоящий из независимых модулей. Он определяет стандартную модульную систему для платформы Java и используется для модуляции самой платформы и приложений. Jigsaw, наряду с Lambda и Coin, изначально предназначался для Java 7, и все три из них были перенесены на Java 8.
Это оказалось основной причиной разногласий среди членов Исполнительного комитета JCP (EC), особенно в отношении системы модулей платформы Java. Еще в мае Исполнительный комитет JCP отклонил включение проекта Jigsaw и, следовательно, модулей как слишком разрушительных для разработчиков. Основные избиратели против включения (Red Hat и IBM) либо имеют, либо поддерживают альтернативные модульные системы.
Теперь, наконец, здесь, поддержка модулей, как мы надеемся, уменьшит размер и сложность как приложений Java, так и основной среды выполнения Java.
Разделение JDK на модули означает, что разработчики могут объединять модули JDK в различные конфигурации, в том числе:
Конфигурации, соответствующие JRE и JDK
Конфигурации, примерно эквивалентные по содержанию каждому из компактных профилей, определенных в Java SE 8
Пользовательские конфигурации, содержащие только заданный набор модулей и необходимые для них модули
Переход к модулям также реструктурирует образы среды выполнения JDK и JRE для размещения модулей. Мы надеемся, что это улучшит производительность, безопасность и ремонтопригодность. Это изменение также делает большинство внутренних API JDK недоступными по умолчанию, но оставляет несколько важных, широко используемых внутренних API доступными до тех пор, пока не появятся поддерживаемые замены для всей или большей части их функциональности.
Следует отметить, что, поскольку предполагается, что Java 8 будет поддерживаться до 2022 года, по-прежнему вполне жизнеспособно продолжать использовать Java 8 до тех пор, пока пыль не осядет вокруг Java 9.